当前位置: 首页>>代码示例>>Java>>正文


Java ClientConsumer.setMessageHandler方法代码示例

本文整理汇总了Java中org.apache.activemq.artemis.api.core.client.ClientConsumer.setMessageHandler方法的典型用法代码示例。如果您正苦于以下问题:Java ClientConsumer.setMessageHandler方法的具体用法?Java ClientConsumer.setMessageHandler怎么用?Java ClientConsumer.setMessageHandler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.activemq.artemis.api.core.client.ClientConsumer的用法示例。


在下文中一共展示了ClientConsumer.setMessageHandler方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testReceiveWithListeners

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testReceiveWithListeners() throws Exception {
   SimpleString dla = new SimpleString("DLA");
   SimpleString qName = new SimpleString("q1");
   AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(2).setDeadLetterAddress(dla);
   server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
   SimpleString dlq = new SimpleString("DLQ1");
   clientSession.createQueue(dla, dlq, null, false);
   clientSession.createQueue(qName, qName, null, false);
   ClientProducer producer = clientSession.createProducer(qName);
   producer.send(createTextMessage(clientSession, "heyho!"));
   ClientConsumer clientConsumer = clientSession.createConsumer(qName);
   final CountDownLatch latch = new CountDownLatch(2);
   TestHandler handler = new TestHandler(latch, clientSession);
   clientConsumer.setMessageHandler(handler);
   clientSession.start();
   assertTrue(latch.await(5, TimeUnit.SECONDS));
   assertEquals(handler.count, 2);
   clientConsumer = clientSession.createConsumer(dlq);
   Message m = clientConsumer.receive(5000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "heyho!");
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:24,代码来源:DeadLetterAddressTest.java

示例2: testReceiveThrowsExceptionWhenHandlerSet

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testReceiveThrowsExceptionWhenHandlerSet() throws Exception {

   ClientSessionFactory cf = createSessionFactory(locator);
   ClientSession session = cf.createSession(false, true, true);
   session.createQueue(addressA, queueA, false);
   ClientConsumer cc = session.createConsumer(queueA);
   session.start();
   cc.setMessageHandler(new MessageHandler() {
      @Override
      public void onMessage(final ClientMessage message) {
      }
   });
   try {
      cc.receive();
      Assert.fail("should throw exception");
   } catch (ActiveMQIllegalStateException ise) {
      //ok
   } catch (ActiveMQException e) {
      Assert.fail("Invalid Exception type:" + e.getType());
   }
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:24,代码来源:ReceiveTest.java

示例3: testClearListener

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testClearListener() throws Exception {
   ClientSessionFactory sf = createSessionFactory(locator);

   ClientSession session = sf.createSession(false, true, true);
   session.start();

   ClientConsumer consumer = session.createConsumer(QUEUE);

   consumer.setMessageHandler(new MessageHandler() {
      @Override
      public void onMessage(final ClientMessage msg) {
      }
   });

   consumer.setMessageHandler(null);
   consumer.receiveImmediate();

   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:21,代码来源:ConsumerTest.java

示例4: testNoReceiveWithListener

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testNoReceiveWithListener() throws Exception {
   ClientSessionFactory sf = createSessionFactory(locator);

   ClientSession session = sf.createSession(false, true, true);

   ClientConsumer consumer = session.createConsumer(QUEUE);

   consumer.setMessageHandler(new MessageHandler() {
      @Override
      public void onMessage(final ClientMessage msg) {
      }
   });

   try {
      consumer.receiveImmediate();
      Assert.fail("Should throw exception");
   } catch (ActiveMQIllegalStateException ise) {
      //ok
   } catch (ActiveMQException me) {
      Assert.fail("Wrong exception code");
   }

   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:26,代码来源:ConsumerTest.java

示例5: doTestBasicGrouping

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
private void doTestBasicGrouping() throws Exception {
   ClientProducer clientProducer = clientSession.createProducer(qName);
   ClientConsumer consumer = clientSession.createConsumer(qName);
   ClientConsumer consumer2 = clientSession.createConsumer(qName);
   clientSession.start();

   SimpleString groupId = new SimpleString("grp1");
   int numMessages = 100;
   for (int i = 0; i < numMessages; i++) {
      ClientMessage message = createTextMessage(clientSession, "m" + i);
      message.putStringProperty(Message.HDR_GROUP_ID, groupId);
      clientProducer.send(message);
   }

   CountDownLatch latch = new CountDownLatch(numMessages);
   DummyMessageHandler dummyMessageHandler = new DummyMessageHandler(latch, true);
   consumer.setMessageHandler(dummyMessageHandler);
   DummyMessageHandler dummyMessageHandler2 = new DummyMessageHandler(latch, true);
   consumer2.setMessageHandler(dummyMessageHandler2);
   Assert.assertTrue(latch.await(10, TimeUnit.SECONDS));
   Assert.assertEquals(100, dummyMessageHandler.list.size());
   Assert.assertEquals(0, dummyMessageHandler2.list.size());
   consumer.close();
   consumer2.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:26,代码来源:MessageGroupingTest.java

示例6: doTestBasicGroupingUsingConnectionFactory

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
private void doTestBasicGroupingUsingConnectionFactory() throws Exception {
   ClientProducer clientProducer = clientSession.createProducer(qName);
   ClientConsumer consumer = clientSession.createConsumer(qName);
   ClientConsumer consumer2 = clientSession.createConsumer(qName);
   clientSession.start();

   int numMessages = 100;
   for (int i = 0; i < numMessages; i++) {
      ClientMessage message = createTextMessage(clientSession, "m" + i);
      clientProducer.send(message);
   }
   CountDownLatch latch = new CountDownLatch(numMessages);
   DummyMessageHandler dummyMessageHandler = new DummyMessageHandler(latch, true);
   consumer.setMessageHandler(dummyMessageHandler);
   DummyMessageHandler dummyMessageHandler2 = new DummyMessageHandler(latch, true);
   consumer2.setMessageHandler(dummyMessageHandler2);
   Assert.assertTrue(latch.await(10, TimeUnit.SECONDS));
   Assert.assertEquals(100, dummyMessageHandler.list.size());
   Assert.assertEquals(0, dummyMessageHandler2.list.size());
   consumer.close();
   consumer2.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:23,代码来源:MessageGroupingConnectionFactoryTest.java

示例7: doTestBasicGroupingMultipleProducers

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
private void doTestBasicGroupingMultipleProducers() throws Exception {
   ClientProducer clientProducer = clientSession.createProducer(qName);
   ClientProducer clientProducer2 = clientSession.createProducer(qName);
   ClientProducer clientProducer3 = clientSession.createProducer(qName);
   ClientConsumer consumer = clientSession.createConsumer(qName);
   ClientConsumer consumer2 = clientSession.createConsumer(qName);
   clientSession.start();

   int numMessages = 100;
   for (int i = 0; i < numMessages; i++) {
      ClientMessage message = createTextMessage(clientSession, "m" + i);
      clientProducer.send(message);
      clientProducer2.send(message);
      clientProducer3.send(message);
   }
   CountDownLatch latch = new CountDownLatch(numMessages * 3);
   DummyMessageHandler dummyMessageHandler = new DummyMessageHandler(latch, true);
   consumer.setMessageHandler(dummyMessageHandler);
   DummyMessageHandler dummyMessageHandler2 = new DummyMessageHandler(latch, true);
   consumer2.setMessageHandler(dummyMessageHandler2);
   Assert.assertTrue(latch.await(10, TimeUnit.SECONDS));
   Assert.assertEquals(300, dummyMessageHandler.list.size());
   Assert.assertEquals(0, dummyMessageHandler2.list.size());
   consumer.close();
   consumer2.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:27,代码来源:MessageGroupingConnectionFactoryTest.java

示例8: ArtemisQConsumer

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
/**
 * Creates a new instance.
 * @param consumer the Artemis queue consumer.
 * @param messageHandler processes messages received by the consumer.
 * @throws NullPointerException if any argument is {@code null}.
 * @throws ActiveMQException if the message handler couldn't be connected
 * to the consumer.
 */
public ArtemisQConsumer(
        ClientConsumer consumer,
        BiConsumerE<ArtemisMessage, InputStream> messageHandler)
        throws ActiveMQException {
    requireNonNull(consumer, "consumer");
    requireNonNull(messageHandler, "messageHandler");

    this.consumer = consumer;
    this.messageHandler = messageHandler;

    consumer.setMessageHandler(this);
}
 
开发者ID:openmicroscopy,项目名称:omero-ms-queue,代码行数:21,代码来源:ArtemisQConsumer.java

示例9: start

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
public void start() throws Exception {
   if (registration.getTarget().getClassName() != null) {
      Class clazz = Thread.currentThread().getContextClassLoader().loadClass(registration.getTarget().getClassName());
      strategy = (PushStrategy) clazz.newInstance();
   } else if (registration.getTarget().getRelationship() != null) {
      if (registration.getTarget().getRelationship().equals("destination")) {
         strategy = new ActiveMQPushStrategy();
      } else if (registration.getTarget().getRelationship().equals("template")) {
         strategy = new UriTemplateStrategy();
      }
   }
   if (strategy == null) {
      strategy = new UriStrategy();
   }
   strategy.setRegistration(registration);
   strategy.setJmsOptions(jmsOptions);
   strategy.start();

   sessions = new ArrayList<>();
   consumers = new ArrayList<>();

   for (int i = 0; i < registration.getSessionCount(); i++) {
      ClientSession session = factory.createSession(false, false, 0);

      ClientConsumer consumer;

      if (registration.getSelector() != null) {
         consumer = session.createConsumer(destination, SelectorTranslator.convertToActiveMQFilterString(registration.getSelector()));
      } else {
         consumer = session.createConsumer(destination);
      }
      consumer.setMessageHandler(new PushConsumerMessageHandler(this, session));
      session.start();
      ActiveMQRestLogger.LOGGER.startingPushConsumer(registration.getTarget());

      consumers.add(consumer);
      sessions.add(session);
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:40,代码来源:PushConsumer.java

示例10: testRequest

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testRequest() throws Exception {
   final SimpleString key = RandomUtil.randomSimpleString();
   long value = RandomUtil.randomLong();
   SimpleString requestAddress = new SimpleString("AdTest");
   SimpleString requestQueue = RandomUtil.randomSimpleString();

   final ClientSession session = sf.createSession(false, true, true);

   session.start();

   session.createTemporaryQueue(requestAddress, requestQueue);

   ClientConsumer requestConsumer = session.createConsumer(requestQueue);
   requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));

   ClientRequestor requestor = new ClientRequestor(session, requestAddress);
   ClientMessage request = session.createMessage(false);
   request.putLongProperty(key, value);

   ClientMessage reply = requestor.request(request, 500);
   Assert.assertNotNull("reply was not received", reply);
   Assert.assertEquals(value, reply.getObjectProperty(key));

   Thread.sleep(5000);
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:28,代码来源:RequestorTest.java

示例11: testTwoRequests

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testTwoRequests() throws Exception {
   final SimpleString key = RandomUtil.randomSimpleString();
   long value = RandomUtil.randomLong();
   SimpleString requestAddress = RandomUtil.randomSimpleString();
   SimpleString requestQueue = RandomUtil.randomSimpleString();

   ClientSessionFactory sf = createSessionFactory(locator);
   final ClientSession session = sf.createSession(false, true, true);

   session.start();

   session.createTemporaryQueue(requestAddress, requestQueue);

   ClientConsumer requestConsumer = session.createConsumer(requestQueue);
   requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));

   ClientRequestor requestor = new ClientRequestor(session, requestAddress);
   ClientMessage request = session.createMessage(false);
   request.putLongProperty(key, value);

   ClientMessage reply = requestor.request(request, 500);
   Assert.assertNotNull("reply was not received", reply);
   Assert.assertEquals(value, reply.getObjectProperty(key));

   request = session.createMessage(false);
   request.putLongProperty(key, value + 1);

   reply = requestor.request(request, 500);
   Assert.assertNotNull("reply was not received", reply);
   Assert.assertEquals(value + 1, reply.getObjectProperty(key));

   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:35,代码来源:RequestorTest.java

示例12: testClose

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testClose() throws Exception {
   final SimpleString key = RandomUtil.randomSimpleString();
   long value = RandomUtil.randomLong();
   SimpleString requestAddress = RandomUtil.randomSimpleString();
   SimpleString requestQueue = RandomUtil.randomSimpleString();

   ClientSessionFactory sf = createSessionFactory(locator);
   final ClientSession session = sf.createSession(false, true, true);

   session.start();

   session.createTemporaryQueue(requestAddress, requestQueue);

   ClientConsumer requestConsumer = session.createConsumer(requestQueue);
   requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));

   final ClientRequestor requestor = new ClientRequestor(session, requestAddress);
   ClientMessage request = session.createMessage(false);
   request.putLongProperty(key, value);

   ClientMessage reply = requestor.request(request, 500);
   Assert.assertNotNull("reply was not received", reply);
   Assert.assertEquals(value, reply.getObjectProperty(key));

   request = session.createMessage(false);
   request.putLongProperty(key, value + 1);

   requestor.close();

   ActiveMQAction activeMQAction = new ActiveMQAction() {
      @Override
      public void run() throws Exception {
         requestor.request(session.createMessage(false), 500);
      }
   };

   ActiveMQTestBase.expectActiveMQException("can not send a request on a closed ClientRequestor", ActiveMQExceptionType.OBJECT_CLOSED, activeMQAction);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:40,代码来源:RequestorTest.java

示例13: testAsyncConsumerRollback

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testAsyncConsumerRollback() throws Exception {
   ActiveMQServer server = createServer(false);
   server.start();
   ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0);
   ClientSessionFactory cf = createSessionFactory(locator);
   ClientSession sendSession = cf.createSession(false, true, true);
   final ClientSession session = cf.createSession(false, true, false);
   sendSession.createQueue(addressA, queueA, false);
   ClientProducer cp = sendSession.createProducer(addressA);
   ClientConsumer cc = session.createConsumer(queueA);
   int numMessages = 100;
   for (int i = 0; i < numMessages; i++) {
      cp.send(sendSession.createMessage(false));
   }
   CountDownLatch latch = new CountDownLatch(numMessages);
   session.start();
   cc.setMessageHandler(new ackHandler(session, latch));
   Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
   Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
   Assert.assertEquals(numMessages, q.getDeliveringCount());
   Assert.assertEquals(numMessages, getMessageCount(q));
   session.stop();
   session.rollback();
   Assert.assertEquals(0, q.getDeliveringCount());
   Assert.assertEquals(numMessages, getMessageCount(q));
   latch = new CountDownLatch(numMessages);
   cc.setMessageHandler(new ackHandler(session, latch));
   session.start();
   Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
   sendSession.close();
   session.close();
   cf.close();

}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:36,代码来源:CommitRollbackTest.java

示例14: testAsyncConsumerNoAck

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testAsyncConsumerNoAck() throws Exception {
   ActiveMQServer server = createServer(false);

   server.start();
   ServerLocator locator = createInVMNonHALocator();
   ClientSessionFactory cf = createSessionFactory(locator);
   ClientSession sendSession = cf.createSession(false, true, true);
   ClientSession session = cf.createSession(false, true, true);
   sendSession.createQueue(addressA, queueA, false);
   ClientProducer cp = sendSession.createProducer(addressA);
   ClientConsumer cc = session.createConsumer(queueA);
   int numMessages = 3;
   for (int i = 0; i < numMessages; i++) {
      cp.send(sendSession.createMessage(false));
   }

   Thread.sleep(500);
   log.info("woke up");

   final CountDownLatch latch = new CountDownLatch(numMessages);
   session.start();
   cc.setMessageHandler(new MessageHandler() {
      int c = 0;

      @Override
      public void onMessage(final ClientMessage message) {
         log.info("Got message " + c++);
         latch.countDown();
      }
   });
   Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
   Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
   Assert.assertEquals(numMessages, q.getDeliveringCount());
   sendSession.close();
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:38,代码来源:AcknowledgeTest.java

示例15: testAsyncConsumerAck

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testAsyncConsumerAck() throws Exception {
   ActiveMQServer server = createServer(false);
   server.start();
   ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0);
   ClientSessionFactory cf = createSessionFactory(locator);
   ClientSession sendSession = cf.createSession(false, true, true);
   final ClientSession session = cf.createSession(false, true, true);
   sendSession.createQueue(addressA, queueA, false);
   ClientProducer cp = sendSession.createProducer(addressA);
   ClientConsumer cc = session.createConsumer(queueA);
   int numMessages = 100;
   for (int i = 0; i < numMessages; i++) {
      cp.send(sendSession.createMessage(false));
   }
   final CountDownLatch latch = new CountDownLatch(numMessages);
   session.start();
   cc.setMessageHandler(new MessageHandler() {
      @Override
      public void onMessage(final ClientMessage message) {
         try {
            message.acknowledge();
         } catch (ActiveMQException e) {
            try {
               session.close();
            } catch (ActiveMQException e1) {
               e1.printStackTrace();
            }
         }
         latch.countDown();
      }
   });
   Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
   Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
   Assert.assertEquals(0, q.getDeliveringCount());
   sendSession.close();
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:39,代码来源:AcknowledgeTest.java


注:本文中的org.apache.activemq.artemis.api.core.client.ClientConsumer.setMessageHandler方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。