com.mtech.easyexchange.ordersolver.OrderSolverConfigurer.java Source code

Java tutorial

Introduction

Here is the source code for com.mtech.easyexchange.ordersolver.OrderSolverConfigurer.java

Source

/*
 * This file is part of EasyExchange.
 *
 * (c) 2014 - Machiel Molenaar <machiel@machiel.me>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

package com.mtech.easyexchange.ordersolver;

import com.mtech.easyexchange.ordersolver.consumer.OrderMessageConsumer;
import com.mtech.easyexchange.ordersolver.solver.OrderSolverThread;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;

public class OrderSolverConfigurer {

    public static void main(String... args) throws Exception {

        ConnectionFactory cf = new CachingConnectionFactory("127.0.0.1");

        RabbitAdmin admin = new RabbitAdmin(cf);

        Queue queue = new Queue("OrderQueue");
        admin.declareQueue(queue);

        TopicExchange exchange = new TopicExchange("OrderExchange");
        admin.declareExchange(exchange);

        admin.declareBinding(BindingBuilder.bind(queue).to(exchange).with("*"));

        OrderMessageHolder holder = new OrderMessageHolder();

        OrderSolverThread ost = new OrderSolverThread(holder);
        ost.start();

        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(cf);
        container.setMessageListener(new OrderMessageConsumer(holder));
        container.setQueueNames("OrderQueue");
        container.start();
    }

}