本文整理汇总了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!");
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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);
}
示例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);
}
}
示例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();
}
示例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();
}
示例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);
}
示例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();
}
示例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();
}
示例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();
}