Package org.springframework.amqp.rabbit.listener

Examples of org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer


    this.template.setQueue(ROUTE);
    this.template.setRoutingKey(ROUTE);
    this.template.setReplyQueue(REPLY_QUEUE);
    this.template.setReplyTimeout(10000);

    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
    container.setConnectionFactory(this.template.getConnectionFactory());
    container.setQueues(REPLY_QUEUE);
    container.setMessageListener(this.template);
    container.start();

    int count = 10;

    final Map<Double, Object> results = new HashMap<Double, Object>();

    ExecutorService executor = Executors.newFixedThreadPool(10);

    this.template.setCorrelationKey("CorrelationKey");

    for (int i = 0; i < count; i++) {
      executor.execute(new Runnable() {

        @Override
        public void run() {
          Double request = Math.random() * 100;
          Object reply = template.convertSendAndReceive(request);
          results.put(request, reply);
        }
      });
    }

    for (int i = 0; i < count; i++) {
      executor.execute(new Runnable() {

        @Override
        public void run() {
          Double request = Math.random() * 100;
          MessageProperties messageProperties = new MessageProperties();
          messageProperties.setContentType(MessageProperties.CONTENT_TYPE_SERIALIZED_OBJECT);
          Message reply = template.sendAndReceive(new Message(SerializationUtils.serialize(request), messageProperties));
          results.put(request, SerializationUtils.deserialize(reply.getBody()));
        }
      });
    }

    final AtomicInteger receiveCount = new AtomicInteger();

    long start = System.currentTimeMillis();
    do {
      template.receiveAndReply(new ReceiveAndReplyCallback<Double, Double>() {

        @Override
        public Double handle(Double payload) {
          receiveCount.incrementAndGet();
          return payload * 3;
        }
      });
      if (System.currentTimeMillis() > start + 10000) {
        fail("Something wrong with RabbitMQ");
      }
    } while (receiveCount.get() < count * 2);


    executor.shutdown();
    assertTrue(executor.awaitTermination(10, TimeUnit.SECONDS));
    container.stop();

    assertEquals(count * 2, results.size());

    for (Map.Entry<Double, Object> entry : results.entrySet()) {
      assertEquals(entry.getKey() * 3, entry.getValue());
View Full Code Here


    setBasicConfig(this.factory);
    SimpleRabbitListenerEndpoint endpoint = new SimpleRabbitListenerEndpoint();
    endpoint.setMessageListener(this.messageListener);
    endpoint.setQueueNames("myQueue");

    SimpleMessageListenerContainer container = this.factory.createListenerContainer(endpoint);

    assertBasicConfig(container);
    assertEquals(messageListener, container.getMessageListener());
    assertEquals("myQueue", container.getQueueNames()[0]);
  }
View Full Code Here

    SimpleRabbitListenerEndpoint endpoint = new SimpleRabbitListenerEndpoint();

    endpoint.setMessageListener(this.messageListener);
    endpoint.setQueueNames("myQueue");
    SimpleMessageListenerContainer container = this.factory.createListenerContainer(endpoint);

    assertBasicConfig(container);
    DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(container);
    assertSame(executor, fieldAccessor.getPropertyValue("taskExecutor"));
    assertSame(transactionManager, fieldAccessor.getPropertyValue("transactionManager"));
    assertEquals(10, fieldAccessor.getPropertyValue("txSize"));
    assertEquals(2, fieldAccessor.getPropertyValue("concurrentConsumers"));
    assertEquals(5, fieldAccessor.getPropertyValue("maxConcurrentConsumers"));
    assertEquals(2000L, fieldAccessor.getPropertyValue("startConsumerMinInterval"));
    assertEquals(2500L, fieldAccessor.getPropertyValue("stopConsumerMinInterval"));
    assertEquals(8, fieldAccessor.getPropertyValue("consecutiveActiveTrigger"));
    assertEquals(6, fieldAccessor.getPropertyValue("consecutiveIdleTrigger"));
    assertEquals(3, fieldAccessor.getPropertyValue("prefetchCount"));
    assertEquals(1500L, fieldAccessor.getPropertyValue("receiveTimeout"));
    assertEquals(false, fieldAccessor.getPropertyValue("defaultRequeueRejected"));
    Advice[] actualAdviceChain = (Advice[]) fieldAccessor.getPropertyValue("adviceChain");
    assertEquals("Wrong number of advice", 1, actualAdviceChain.length);
    assertSame("Wrong advice", advice, actualAdviceChain[0]);
    assertEquals(3000L, fieldAccessor.getPropertyValue("recoveryInterval"));
    assertEquals(true, fieldAccessor.getPropertyValue("missingQueuesFatal"));
    assertEquals(messageListener, container.getMessageListener());
    assertEquals("myQueue", container.getQueueNames()[0]);
  }
View Full Code Here

    assertListenerMethodInvocation("expectFooBarUpperCase");
  }

  @SuppressWarnings("unchecked")
  private void invokeListener(RabbitListenerEndpoint endpoint, Message message) throws Exception {
    SimpleMessageListenerContainer messageListenerContainer =
        containerFactory.createListenerContainer(endpoint);
    Object listener = messageListenerContainer.getMessageListener();
    if (listener instanceof ChannelAwareMessageListener) {
      ((ChannelAwareMessageListener) listener).onMessage(message, mock(Channel.class));
    }
    else {
      ((MessageListener) listener).onMessage(message);
View Full Code Here

TOP

Related Classes of org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.