コード例 #1
0
  @Test
  public void testQueue() throws Exception {
    ClassPathXmlApplicationContext context =
        new ClassPathXmlApplicationContext("gemfire-queue-config.xml", this.getClass());

    QueueChannel gemfireQueue = context.getBean("gemfireQueue", QueueChannel.class);
    QueueChannel outputQueue = context.getBean("outputQueue", QueueChannel.class);

    for (int i = 0; i < 20; i++) {
      gemfireQueue.send(new GenericMessage<String>("Hello"));
      Thread.sleep(1);
    }
    for (int i = 0; i < 20; i++) {
      assertNotNull(outputQueue.receive(5000));
    }
    assertNull(outputQueue.receive(1));
    context.close();
  }
 @Test
 public void subscription() throws Exception {
   TestApplicationContext context = TestUtils.createTestApplicationContext();
   SynchronousQueue<String> queue = new SynchronousQueue<String>();
   TestBean testBean = new TestBean(queue);
   QueueChannel channel = new QueueChannel();
   context.registerChannel("channel", channel);
   Message<String> message = new GenericMessage<String>("testing");
   channel.send(message);
   assertNull(queue.poll());
   MethodInvokingMessageHandler handler = new MethodInvokingMessageHandler(testBean, "foo");
   PollingConsumer endpoint = new PollingConsumer(channel, handler);
   endpoint.setTrigger(new PeriodicTrigger(10));
   context.registerEndpoint("testEndpoint", endpoint);
   context.refresh();
   String result = queue.poll(2000, TimeUnit.MILLISECONDS);
   assertNotNull(result);
   assertEquals("testing", result);
   context.stop();
 }