Example usage for org.springframework.amqp.core Queue Queue

List of usage examples for org.springframework.amqp.core Queue Queue

Introduction

In this page you can find the example usage for org.springframework.amqp.core Queue Queue.

Prototype

public Queue(String name, boolean durable, boolean exclusive, boolean autoDelete) 

Source Link

Document

Construct a new queue, given a name, durability, exclusive and auto-delete flags.

Usage

From source file:org.resthub.rpc.AMQPHessianProxyFactory.java

/**
 * Create a queue for response/*from   www  .ja  v  a 2  s.  co m*/
 * 
 * @param connectionFactory
 * @param queueName    the name of the queue
 */
private Queue createReplyQueue(AmqpAdmin admin, String queueName) {
    Queue replyQueue = new Queue(queueName, false, true, false);
    admin.declareQueue(replyQueue);
    return replyQueue;
}

From source file:com.jbrisbin.groovy.mqdsl.RabbitMQBuilder.java

@Override
protected Object createNode(Object o, final Map params) {
    if (log.isDebugEnabled()) {
        log.debug(String.format("createNode(Object o, Map params): %s, %s", o, params));
    }/*  w w  w  .ja  v a2s  . com*/
    String node = o.toString();
    if (ON.equals(node)) {
        // Event handlers
        for (Map.Entry<String, Closure> entry : ((Map<String, Closure>) params).entrySet()) {
            String eventName = entry.getKey();
            List<Closure> handlers;
            if (eventHandlers.containsKey(eventName)) {
                handlers = eventHandlers.get(eventName);
            } else {
                handlers = new ArrayList<Closure>();
                eventHandlers.put(eventName, handlers);
            }
            if (entry.getValue() instanceof List) {
                for (Closure cl : (List<Closure>) entry.getValue()) {
                    handlers.add(cl);
                }
            } else if (entry.getValue() instanceof Closure) {
                Closure cl = entry.getValue();
                cl.setProperty(NAME, eventName);
                handlers.add(cl);
            }
        }
        return null;
    } else if (EXCHANGE.equals(node)) {
        boolean durable = params.containsKey(DURABLE) ? (Boolean) params.get(DURABLE) : false;
        boolean autoDelete = params.containsKey(AUTO_DELETE) ? (Boolean) params.get(AUTO_DELETE) : false;
        Map arguments = params.containsKey(ARGUMENTS) ? (Map) params.get(ARGUMENTS) : null;
        currentRoutingKey = null;

        Exchange exchange = null;
        String name = null;
        if (params.containsKey(NAME)) {
            name = params.get(NAME).toString();
        }
        if (params.containsKey(TYPE)) {
            String type = params.containsKey(TYPE) ? params.get(TYPE).toString() : DIRECT;
            if (DIRECT.equals(type)) {
                exchange = new DirectExchange(name, durable, autoDelete, arguments);
            } else if (TOPIC.equals(type)) {
                exchange = new TopicExchange(name, durable, autoDelete, arguments);
            } else if (FANOUT.equals(type)) {
                exchange = new FanoutExchange(name, durable, autoDelete, arguments);
            } else if (HEADERS.equals(type)) {
                exchange = new HeadersExchange(name, durable, autoDelete, arguments);
            } else {
                exchange = new CustomExchange(name, type, durable, autoDelete, arguments);
            }
            currentExchange = exchange;

        } else {
            currentExchange = new DirectExchange(name);
        }
        try {
            rabbitAdmin.declareExchange(currentExchange);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            dispatchError(e);
        }

        return exchange;
    } else if (QUEUE.equals(node)) {
        boolean durable = params.containsKey(DURABLE) ? (Boolean) params.get(DURABLE) : false;
        boolean autoDelete = params.containsKey(AUTO_DELETE) ? (Boolean) params.get(AUTO_DELETE) : true;
        String routingKey = params.containsKey(ROUTING_KEY) ? params.get(ROUTING_KEY).toString() : null;
        if (null != routingKey) {
            currentRoutingKey = routingKey;
        }
        boolean exclusive = params.containsKey(EXCLUSIVE) ? (Boolean) params.get(EXCLUSIVE) : false;
        Map arguments = params.containsKey(ARGUMENTS) ? (Map) params.get(ARGUMENTS) : null;

        Queue q = null;
        String name;
        if (params.containsKey(NAME)) {
            try {
                if (null == params.get(NAME)) {
                    name = null;
                } else {
                    name = params.get(NAME).toString();
                }

                if (name == null) {
                    q = rabbitAdmin.declareQueue();
                } else {
                    q = new Queue(name, durable, exclusive, autoDelete);
                    rabbitAdmin.declareQueue(q);
                }
                currentQueue = q;

                if (null != currentExchange) {
                    Binding binding = null;
                    if (currentExchange instanceof FanoutExchange) {
                        binding = BindingBuilder.bind(q).to((FanoutExchange) currentExchange);
                    } else if (currentExchange instanceof DirectExchange) {
                        binding = BindingBuilder.bind(q).to((DirectExchange) currentExchange).with(routingKey);
                    } else if (currentExchange instanceof HeadersExchange) {
                        binding = BindingBuilder.bind(q).to((HeadersExchange) currentExchange)
                                .whereAll(arguments).match();
                    } else if (currentExchange instanceof TopicExchange) {
                        binding = BindingBuilder.bind(q).to((TopicExchange) currentExchange).with(routingKey);
                    } else if (currentExchange instanceof CustomExchange) {
                        binding = BindingBuilder.bind(q).to(currentExchange).with(routingKey).noargs();
                    }

                    if (null != binding) {
                        rabbitAdmin.declareBinding(binding);
                    }
                }
            } catch (Exception e) {
                log.error(e.getMessage(), e);
                dispatchError(e);
            }
        }
        return q;
    }

    return null;
}

From source file:org.openbaton.nse.api.EventReceiver.java

@Bean
public Queue getCreationQueue() {
    logger.debug("Created Queue for NSR Create event");
    return new Queue(queueName_eventInstantiateFinish, false, false, true);
}

From source file:org.openbaton.nse.api.EventReceiver.java

@Bean
public Queue getErrorQueue() {
    logger.debug("Created Queue for NSR error event");
    return new Queue(queueName_eventError, false, false, true);
}

From source file:org.openbaton.nse.api.EventReceiver.java

@Bean
public Queue getScaleQueue() {
    logger.debug("Created Queue for NSR scale event");
    return new Queue(queueName_eventScale, false, false, true);
}

From source file:org.springframework.amqp.rabbit.core.RabbitAdmin.java

/**
 * Declares a server-named exclusive, autodelete, non-durable queue.
 *//* w w w  . ja  v  a  2  s .c  om*/
@ManagedOperation
public Queue declareQueue() {
    DeclareOk declareOk = this.rabbitTemplate.execute(new ChannelCallback<DeclareOk>() {
        public DeclareOk doInRabbit(Channel channel) throws Exception {
            return channel.queueDeclare();
        }
    });
    Queue queue = new Queue(declareOk.getQueue(), false, true, true);
    return queue;
}

From source file:org.springframework.amqp.rabbit.core.RabbitAdminTests.java

@Test
public void testTemporaryLogs() throws Exception {
    SingleConnectionFactory connectionFactory = new SingleConnectionFactory();
    connectionFactory.setHost("localhost");
    RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory);
    try {/*from w  w  w.j a va2s .com*/
        ApplicationContext ctx = mock(ApplicationContext.class);
        Map<String, Queue> queues = new HashMap<String, Queue>();
        queues.put("nonDurQ", new Queue("testq.nonDur", false, false, false));
        queues.put("adQ", new Queue("testq.ad", true, false, true));
        queues.put("exclQ", new Queue("testq.excl", true, true, false));
        queues.put("allQ", new Queue("testq.all", false, true, true));
        when(ctx.getBeansOfType(Queue.class)).thenReturn(queues);
        Map<String, Exchange> exchanges = new HashMap<String, Exchange>();
        exchanges.put("nonDurEx", new DirectExchange("testex.nonDur", false, false));
        exchanges.put("adEx", new DirectExchange("testex.ad", true, true));
        exchanges.put("allEx", new DirectExchange("testex.all", false, true));
        when(ctx.getBeansOfType(Exchange.class)).thenReturn(exchanges);
        rabbitAdmin.setApplicationContext(ctx);
        rabbitAdmin.afterPropertiesSet();
        Log logger = spy(TestUtils.getPropertyValue(rabbitAdmin, "logger", Log.class));
        doReturn(true).when(logger).isInfoEnabled();
        doAnswer(new DoesNothing()).when(logger).info(anyString());
        new DirectFieldAccessor(rabbitAdmin).setPropertyValue("logger", logger);
        connectionFactory.createConnection().close(); // force declarations
        ArgumentCaptor<String> log = ArgumentCaptor.forClass(String.class);
        verify(logger, times(7)).info(log.capture());
        List<String> logs = log.getAllValues();
        Collections.sort(logs);
        assertThat(logs.get(0), Matchers.containsString("(testex.ad) durable:true, auto-delete:true"));
        assertThat(logs.get(1), Matchers.containsString("(testex.all) durable:false, auto-delete:true"));
        assertThat(logs.get(2), Matchers.containsString("(testex.nonDur) durable:false, auto-delete:false"));
        assertThat(logs.get(3),
                Matchers.containsString("(testq.ad) durable:true, auto-delete:true, exclusive:false"));
        assertThat(logs.get(4),
                Matchers.containsString("(testq.all) durable:false, auto-delete:true, exclusive:true"));
        assertThat(logs.get(5),
                Matchers.containsString("(testq.excl) durable:true, auto-delete:false, exclusive:true"));
        assertThat(logs.get(6),
                Matchers.containsString("(testq.nonDur) durable:false, auto-delete:false, exclusive:false"));
    } finally {
        cleanQueuesAndExchanges(rabbitAdmin);
        connectionFactory.destroy();
    }
}

From source file:org.springframework.integration.x.rabbit.RabbitMessageBus.java

@Override
public void bindRequestor(String name, MessageChannel requests, MessageChannel replies) {
    if (logger.isInfoEnabled()) {
        logger.info("binding requestor: " + name);
    }//w ww .  j a va2 s  . c  o  m
    Assert.isInstanceOf(SubscribableChannel.class, requests);
    String queueName = name + ".requests";
    AmqpOutboundEndpoint queue = this.buildOutboundEndpoint(queueName);

    String replyQueueName = name + ".replies." + this.getIdGenerator().generateId();
    this.doRegisterProducer(name, requests, queue, replyQueueName);
    Queue replyQueue = new Queue(replyQueueName, false, false, true); // auto-delete
    this.rabbitAdmin.declareQueue(replyQueue);
    // register with context so it will be redeclared after a connection failure
    this.autoDeclareContext.getBeanFactory().registerSingleton(replyQueueName, replyQueue);
    this.doRegisterConsumer(name, replies, replyQueue);
}

From source file:org.springframework.xd.dirt.integration.rabbit.RabbitMessageBus.java

@Override
public void bindPubSubConsumer(String name, MessageChannel moduleInputChannel, Properties properties) {
    if (logger.isInfoEnabled()) {
        logger.info("declaring pubsub for inbound: " + name);
    }// w w w. j ava2 s.c  o m
    RabbitPropertiesAccessor accessor = new RabbitPropertiesAccessor(properties);
    validateConsumerProperties(name, properties, SUPPORTED_PUBSUB_CONSUMER_PROPERTIES);
    String prefix = accessor.getPrefix(this.defaultPrefix);
    FanoutExchange exchange = new FanoutExchange(prefix + "topic." + name);
    declareExchangeIfNotPresent(exchange);
    String uniqueName = name + "." + UUID.randomUUID().toString();
    Queue queue = new Queue(prefix + uniqueName, false, true, true);
    declareQueueIfNotPresent(queue);
    org.springframework.amqp.core.Binding binding = BindingBuilder.bind(queue).to(exchange);
    this.rabbitAdmin.declareBinding(binding);
    // register with context so they will be redeclared after a connection failure
    this.autoDeclareContext.getBeanFactory().registerSingleton(queue.getName(), queue);
    String bindingBeanName = exchange.getName() + "." + queue.getName() + ".binding";
    if (!autoDeclareContext.containsBean(bindingBeanName)) {
        this.autoDeclareContext.getBeanFactory().registerSingleton(bindingBeanName, binding);
    }
    doRegisterConsumer(name, moduleInputChannel, queue, accessor, true);
    autoBindDLQ(uniqueName, accessor);
}

From source file:org.springframework.xd.dirt.integration.rabbit.RabbitMessageBus.java

@Override
public void bindRequestor(String name, MessageChannel requests, MessageChannel replies, Properties properties) {
    if (logger.isInfoEnabled()) {
        logger.info("binding requestor: " + name);
    }/*from   ww  w .  j a v  a  2s . co m*/
    validateProducerProperties(name, properties, SUPPORTED_REQUESTING_PRODUCER_PROPERTIES);
    Assert.isInstanceOf(SubscribableChannel.class, requests);
    RabbitPropertiesAccessor accessor = new RabbitPropertiesAccessor(properties);
    String queueName = name + ".requests";
    AmqpOutboundEndpoint queue = this.buildOutboundEndpoint(queueName, accessor, this.rabbitTemplate);
    queue.setBeanFactory(this.getBeanFactory());

    String replyQueueName = accessor.getPrefix(this.defaultPrefix) + name + ".replies."
            + this.getIdGenerator().generateId();
    this.doRegisterProducer(name, requests, queue, replyQueueName, accessor);
    Queue replyQueue = new Queue(replyQueueName, false, false, true); // auto-delete
    declareQueueIfNotPresent(replyQueue);
    // register with context so it will be redeclared after a connection failure
    this.autoDeclareContext.getBeanFactory().registerSingleton(replyQueueName, replyQueue);
    this.doRegisterConsumer(name, replies, replyQueue, accessor, false);
}