Example usage for com.rabbitmq.client ConnectionFactory ConnectionFactory

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

Introduction

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

Prototype

ConnectionFactory

Source Link

Usage

From source file:org.graylog2.messagehandlers.amqp.AMQPBroker.java

License:Open Source License

public Connection getConnection() throws IOException {
    if (connection == null || !connection.isOpen()) {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setUsername(getUsername());
        factory.setPassword(getPassword());
        factory.setVirtualHost(getVirtualHost());
        factory.setHost(getHost());/*from ww  w .  j  a  v a  2 s  . c o  m*/
        factory.setPort(getPort());
        this.connection = factory.newConnection();
    }

    return this.connection;
}

From source file:org.graylog2.radio.Radio.java

License:Open Source License

public Connection getBroker() throws IOException {
    if (brokerConnection == null || !brokerConnection.isOpen()) {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(configuration.getAMQPHost());
        factory.setPort(configuration.getAMQPPort());
        factory.setUsername(configuration.getAMQPUser());
        factory.setPassword(configuration.getAMQPPassword());

        brokerConnection = factory.newConnection();
    }/*from   w  ww .j av  a2 s .com*/

    return brokerConnection;
}

From source file:org.graylog2.radio.transports.amqp.AMQPSender.java

License:Open Source License

public void connect() throws IOException {
    final ConnectionFactory factory = new ConnectionFactory();
    factory.setHost(hostname);/*  w  ww.  ja  v a  2 s .  c  om*/
    factory.setPort(port);

    factory.setVirtualHost(vHost);

    // Authenticate?
    if (username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
        factory.setUsername(username);
        factory.setPassword(password);
    }

    factory.setConnectionTimeout((int) connectTimeout.getMillis());

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

    // It's ok if the queue or exchange already exist.
    channel.queueDeclare(queueName, true, false, false, null);
    channel.exchangeDeclare(exchangeName, queueType, false, false, null);

    channel.queueBind(queueName, exchangeName, routingKey);
}

From source file:org.hobbit.core.components.AbstractComponent.java

License:Open Source License

@Override
public void init() throws Exception {
    hobbitSessionId = EnvVariables.getString(Constants.HOBBIT_SESSION_ID_KEY,
            Constants.HOBBIT_SESSION_ID_FOR_PLATFORM_COMPONENTS);

    rabbitMQHostName = EnvVariables.getString(Constants.RABBIT_MQ_HOST_NAME_KEY, LOGGER);
    connectionFactory = new ConnectionFactory();
    if (rabbitMQHostName.contains(":")) {
        String[] splitted = rabbitMQHostName.split(":");
        connectionFactory.setHost(splitted[0]);
        connectionFactory.setPort(Integer.parseInt(splitted[1]));
    } else//w  w w .j  a va 2 s . com
        connectionFactory.setHost(rabbitMQHostName);
    connectionFactory.setAutomaticRecoveryEnabled(true);
    // attempt recovery every 10 seconds
    connectionFactory.setNetworkRecoveryInterval(10000);
    incomingDataQueueFactory = new RabbitQueueFactoryImpl(createConnection());
    outgoingDataQueuefactory = new RabbitQueueFactoryImpl(createConnection());
}

From source file:org.hobbit.core.rabbit.EchoServer.java

License:Open Source License

@Override
public void run() {
    running = true;//from  w  w w  .j a v a2  s . c  o  m
    Connection connection = null;
    try {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(rabbitHost);
        connection = factory.newConnection();
        Channel channel = connection.createChannel();
        channel.basicQos(1);
        channel.queueDeclare(queueName, false, false, true, null);

        Consumer consumer = new DefaultConsumer(channel) {
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
                    byte[] body) throws IOException {
                BasicProperties replyProps = new BasicProperties.Builder()
                        .correlationId(properties.getCorrelationId()).deliveryMode(2).build();
                channel.basicPublish("", properties.getReplyTo(), replyProps, body);
            }
        };
        channel.basicConsume(queueName, true, consumer);

        while (running) {
            Thread.sleep(3000);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (connection != null) {
            try {
                connection.close();
            } catch (IOException e) {
            }
        }
    }
}

From source file:org.hobbit.core.rabbit.FileStreamingTest.java

License:Open Source License

@Before
public void before() throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost(TestConstants.RABBIT_HOST);
    connection = factory.newConnection();
}

From source file:org.hobbit.core.rabbit.ParallelizationTest.java

License:Open Source License

@Test
public void test() throws InterruptedException, IOException, TimeoutException {

    EchoServer server = new EchoServer(TestConstants.RABBIT_HOST, REQUEST_QUEUE_NAME);

    Thread serverThread = new Thread(server);
    serverThread.start();//from   ww w. ja v  a2s  .com
    System.out.println("Server started.");

    Random rand = new Random();
    Thread clientThreads[] = new Thread[NUMBER_OF_CLIENTS];
    RabbitRpcClient client = null;
    Connection connection = null;
    long time;
    try {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(TestConstants.RABBIT_HOST);
        connection = factory.newConnection();
        client = RabbitRpcClient.create(connection, REQUEST_QUEUE_NAME);
        for (int i = 0; i < clientThreads.length; ++i) {
            clientThreads[i] = new Thread(
                    new RpcClientBasedEchoClient(client, NUMBER_OF_MSGS, rand.nextLong()));
        }

        Timer timer = new Timer();
        final Thread testThread = Thread.currentThread();
        timer.schedule(new TimerTask() {
            @SuppressWarnings("deprecation")
            @Override
            public void run() {
                testThread.stop();
            }
        }, MAX_RUNTIME);

        time = System.currentTimeMillis();
        for (int i = 0; i < clientThreads.length; ++i) {
            clientThreads[i].start();
            System.out.print("Client #");
            System.out.print(i);
            System.out.println(" started.");
        }
        for (int i = 0; i < clientThreads.length; ++i) {
            clientThreads[i].join();
            System.out.print("Client #");
            System.out.print(i);
            System.out.println(" terminated.");
        }
        server.setRunning(false);
        serverThread.join();
        timer.cancel();

        time = System.currentTimeMillis() - time;
        System.out.println("Server terminated.");
        System.out.println("runtime : " + time + "ms");
    } finally {
        if (client != null) {
            client.close();
        }
        if (connection != null) {
            connection.close();
        }
    }
}

From source file:org.hp.samples.ProcessMessage.java

License:Open Source License

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/plain");
    response.setStatus(200);/* w  w w  .j av a2  s.  co m*/
    PrintWriter writer = response.getWriter();
    writer.println("Here's your message:");

    // Pull out the RABBITMQ_URL environment variable
    String uri = System.getenv("RABBITMQ_URL");

    ConnectionFactory factory = new ConnectionFactory();
    try {
        factory.setUri(uri);
    } catch (KeyManagementException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    // Create the queue
    channel.queueDeclare("hello", false, false, false, null);

    String routingKey = "thekey";
    String exchangeName = "exchange";

    // Declare an exchange and bind it to the queue
    channel.exchangeDeclare(exchangeName, "direct", true);
    channel.queueBind("hello", exchangeName, routingKey);

    // Grab the message from the HTML form and publish it to the queue
    String message = request.getParameter("message");
    channel.basicPublish(exchangeName, routingKey, null, message.getBytes());
    writer.println(" Message sent to queue '" + message + "'");

    boolean autoAck = false;

    // Get the response message
    GetResponse responseMsg = channel.basicGet("hello", autoAck);

    if (responseMsg == null) {
        // No message retrieved.
    } else {
        byte[] body = responseMsg.getBody();
        // Since getBody() returns a byte array, convert to a string for
        // the user.
        String bodyString = new String(body);
        long deliveryTag = responseMsg.getEnvelope().getDeliveryTag();

        writer.println("Message received: " + bodyString);

        // Acknowledge that we received the message so that the queue
        // removes the message so that it's not sent to us again.
        channel.basicAck(deliveryTag, false);
    }

    writer.close();
}

From source file:org.hp.samples.RabbitServlet.java

License:Open Source License

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html");
    response.setStatus(200);/*from  ww  w .  j av  a2s  .  c o  m*/

    PrintWriter writer = response.getWriter();

    // Create an HTML form for the user to input a message for the queue
    String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n";
    writer.println(docType + "<html>" + "<body>" + "<p>RabbitMQ for Java</p>"
            + "<form action='ProcessMessage' method='post'>"
            + "Message to send: <input type='text' name='message'><br>"
            + "<input type='submit' value='Send Message'>" + "</form>" + "</body>" + "</html>");

    String uri = System.getenv("RABBITMQ_URL");

    ConnectionFactory factory = new ConnectionFactory();
    try {
        factory.setUri(uri);
    } catch (KeyManagementException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    channel.queueDeclare("hello", false, false, false, null);

    writer.close();
}

From source file:org.iplantcollaborative.ClientRegistrar.java

License:Apache License

public void connect() throws IOException, TimeoutException {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost(this.serverConf.getHostname());
    factory.setPort(this.serverConf.getPort());
    factory.setUsername(this.serverConf.getUserId());
    factory.setPassword(this.serverConf.getUserPwd());
    factory.setVirtualHost(this.serverConf.getVhostPublish());

    factory.setAutomaticRecoveryEnabled(true);

    this.connection = factory.newConnection();
    this.channel = this.connection.createChannel();

    LOG.info("client registrar connected - " + this.serverConf.getHostname() + ":" + this.serverConf.getPort());

    this.channel.basicQos(1);
    this.channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "#");

    this.consumer = new DefaultConsumer(this.channel) {
        @Override/*from w w  w .  j  ava2 s. com*/
        public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
                byte[] body) throws IOException {
            String message = new String(body, "UTF-8");

            LOG.info("registration - " + message);

            BasicProperties replyProps = new BasicProperties.Builder()
                    .correlationId(properties.getCorrelationId()).build();

            ARequest request = RequestFactory.getRequestInstance(message);

            // handle lease request
            if (request instanceof RequestLease) {
                ResponseLease res = lease((RequestLease) request);
                String response_json = serializer.toJson(res);

                if (properties.getReplyTo() != null) {
                    channel.basicPublish("", properties.getReplyTo(), replyProps, response_json.getBytes());
                } else {
                    LOG.error("unable to return response. reply_to field is null");
                }
            } else {
                LOG.error("Unknown request : " + message);
            }

            channel.basicAck(envelope.getDeliveryTag(), false);
        }
    };

    this.workerThread = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                channel.basicConsume(QUEUE_NAME, false, consumer);
                LOG.info("Waiting for registrations");
            } catch (IOException ex) {
                LOG.error("Exception occurred while consuming message", ex);
            }
        }
    });
    this.workerThread.start();
}