本文整理汇总了Java中org.apache.activemq.artemis.api.core.client.ClientMessage类的典型用法代码示例。如果您正苦于以下问题:Java ClientMessage类的具体用法?Java ClientMessage怎么用?Java ClientMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ClientMessage类属于org.apache.activemq.artemis.api.core.client包,在下文中一共展示了ClientMessage类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: queueMessage
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@Override
public ArtemisMessage queueMessage(QMessageType t) {
requireNonNull(t, "message type");
Function<Boolean, ClientMessage> create = session::createMessage;
Function<Boolean, ArtemisMessage> builder =
create.andThen(ArtemisMessage::new); // (2)
switch (t) {
case Durable:
return builder.apply(true);
case NonDurable:
return builder.apply(false);
default: // (1)
throw new IllegalArgumentException("unsupported message type");
}
}
示例2: initMocks
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
protected void initMocks() throws ActiveMQException {
CoreQueueConfiguration q = new CoreQueueConfiguration();
q.setName("q");
ClientSession sesh = mock(ClientSession.class);
producer = mock(ClientProducer.class);
when(sesh.createProducer(q.getAddress())).thenReturn(producer);
msgToQueue = mock(ClientMessage.class);
boolean durable = true;
when(sesh.createMessage(durable)).thenReturn(msgToQueue);
msgBody = mock(ActiveMQBuffer.class);
when(msgToQueue.getBodyBuffer()).thenReturn(msgBody);
connector = new ArtemisQConnector(q, sesh);
}
示例3: sendMessages
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
public void sendMessages(final int start, final int end) throws Exception {
try (ClientSession session = factory.createSession(false, false)) {
try {
session.createQueue(QUEUE, QUEUE, true);
} catch (Exception ignored) {
}
ClientProducer prod = session.createProducer(QUEUE);
for (int i = start; i < end; i++) {
ClientMessage msg = session.createMessage(true);
msg.putIntProperty(new SimpleString("key"), i);
msg.getBodyBuffer().writeUTF("message " + i);
prod.send(msg);
}
session.commit();
session.close();
// server.stop(); -- this test was not supposed to stop the server, it should crash
}
}
示例4: tearDown
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@After
public void tearDown() throws Exception {
assertNotNull(String.format(ASSERT_SENT_FORMAT, TEST_QUEUE_ONE), sentOne);
assertNotNull(String.format(ASSERT_SENT_FORMAT, TEST_QUEUE_TWO), sentTwo);
Wait.waitFor(new Wait.Condition() {
@Override
public boolean isSatisfied() throws Exception {
return server.getMessageCount(TEST_QUEUE_ONE) == 1 && server.getMessageCount(TEST_QUEUE_TWO) == 1;
}
}, 5000, 100);
assertEquals(String.format(ASSERT_COUNT_FORMAT, TEST_QUEUE_ONE), 1, server.getMessageCount(TEST_QUEUE_ONE));
assertEquals(String.format(ASSERT_COUNT_FORMAT, TEST_QUEUE_TWO), 1, server.getMessageCount(TEST_QUEUE_TWO));
ClientMessage receivedOne = server.receiveMessage(TEST_QUEUE_ONE);
assertNotNull(String.format(ASSERT_RECEIVED_FORMAT, TEST_QUEUE_ONE), receivedOne);
ClientMessage receivedTwo = server.receiveMessage(TEST_QUEUE_TWO);
assertNotNull(String.format(ASSERT_RECEIVED_FORMAT, TEST_QUEUE_TWO), receivedTwo);
server.stop();
}
示例5: testClientOutgoingInterceptorRejectPacketOnBlockingSend
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@Test
public void testClientOutgoingInterceptorRejectPacketOnBlockingSend() throws Exception {
// must make the call block to exercise the right logic
locator.setBlockOnNonDurableSend(true);
ClientSessionFactory sf = createSessionFactory(locator);
MyOutgoingInterceptor4 interceptor = new MyOutgoingInterceptor4();
sf.getServerLocator().addOutgoingInterceptor(interceptor);
ClientSession session = sf.createSession(false, true, true, true);
session.createQueue(QUEUE, QUEUE, null, false);
ClientProducer producer = session.createProducer(QUEUE);
ClientMessage message = session.createMessage(false);
try {
producer.send(message);
Assert.fail();
} catch (ActiveMQException e) {
// expected exception
Assert.assertTrue(e.getType().getCode() == ActiveMQExceptionType.INTERCEPTOR_REJECTED_PACKET.getCode());
}
}
示例6: initMocks
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
protected void initMocks() throws ActiveMQException {
ImportQConfig q = new ImportQConfig();
q.setName("q");
ClientSession sesh = mock(ClientSession.class);
producer = mock(ClientProducer.class);
when(sesh.createProducer(q.getAddress())).thenReturn(producer);
msgToQueue = mock(ClientMessage.class);
boolean durable = true;
when(sesh.createMessage(durable)).thenReturn(msgToQueue);
msgBody = mock(ActiveMQBuffer.class);
when(msgToQueue.getBodyBuffer()).thenReturn(msgBody);
connector = new QueueConnector(q, sesh);
}
示例7: testXAInterleaveResourceSuspendWorkCommit
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@Test
public void testXAInterleaveResourceSuspendWorkCommit() throws Exception {
Xid xid = newXID();
Xid xid2 = newXID();
ClientProducer clientProducer = clientSession.createProducer(atestq);
ClientSession recSession = sessionFactory.createSession();
recSession.start();
ClientConsumer clientConsumer = recSession.createConsumer(atestq);
ClientMessage m1 = createTextMessage(clientSession, "m1");
ClientMessage m2 = createTextMessage(clientSession, "m2");
clientSession.start(xid, XAResource.TMNOFLAGS);
clientProducer.send(m1);
clientSession.end(xid, XAResource.TMSUSPEND);
clientSession.start(xid2, XAResource.TMNOFLAGS);
clientProducer.send(m2);
clientSession.end(xid, XAResource.TMSUCCESS);
clientSession.commit(xid, true);
ClientMessage message = clientConsumer.receiveImmediate();
assertNotNull(message);
message = clientConsumer.receiveImmediate();
assertNull(message);
clientSession.end(xid2, XAResource.TMSUCCESS);
clientSession.commit(xid2, true);
message = clientConsumer.receiveImmediate();
assertNotNull(message);
}
示例8: checkUserReceiveNoSend
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
private void checkUserReceiveNoSend(final String queue,
final ClientSession connection,
final ClientSession sendingConn) throws Exception {
connection.start();
try {
ClientProducer prod = connection.createProducer(queue);
ClientMessage m = connection.createMessage(false);
try {
prod.send(m);
Assert.fail("should throw exception");
} catch (ActiveMQException e) {
// pass
}
prod = sendingConn.createProducer(queue);
prod.send(m);
ClientConsumer con = connection.createConsumer(queue);
ClientMessage rec = con.receive(1000);
Assert.assertNotNull(rec);
rec.acknowledge();
} finally {
connection.stop();
}
}
示例9: readMessages
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
private int readMessages(final ClientSession session,
final ClientConsumer consumer,
final SimpleString queue) throws ActiveMQException {
session.start();
int msgs = 0;
ClientMessage msg = null;
do {
msg = consumer.receive(1000);
if (msg != null) {
msg.acknowledge();
if (++msgs % 10000 == 0) {
System.out.println("received " + msgs);
session.commit();
}
}
}
while (msg != null);
session.commit();
return msgs;
}
示例10: testNoReceiveWithListener
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的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();
}
示例11: testBasicSendToNoQueue
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@Test
public void testBasicSendToNoQueue() throws Exception {
SimpleString qName = new SimpleString("q1");
AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1);
server.getAddressSettingsRepository().addMatch(qName.toString(), addressSettings);
clientSession.createQueue(qName, qName, null, false);
ClientProducer producer = clientSession.createProducer(qName);
producer.send(createTextMessage(clientSession, "heyho!"));
clientSession.start();
ClientConsumer clientConsumer = clientSession.createConsumer(qName);
ClientMessage m = clientConsumer.receive(500);
m.acknowledge();
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "heyho!");
// force a cancel
clientSession.rollback();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
clientConsumer.close();
}
示例12: drainQueue
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
/**
* @param numberOfMessagesExpected
* @param queue
* @throws ActiveMQException
*/
private void drainQueue(final int numberOfMessagesExpected, final SimpleString queue) throws ActiveMQException {
ClientSession sess = sf.createSession(true, true);
ClientConsumer consumer = sess.createConsumer(queue);
sess.start();
for (int i = 0; i < numberOfMessagesExpected; i++) {
ClientMessage msg = consumer.receive(5000);
Assert.assertNotNull(msg);
if (i % 100 == 0) {
// System.out.println("Received #" + i + " on thread after start");
}
msg.acknowledge();
}
Assert.assertNull(consumer.receiveImmediate());
sess.close();
}
示例13: testWildcardRoutingStarAndHash
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@Test
public void testWildcardRoutingStarAndHash() throws Exception {
SimpleString addressAB = new SimpleString("a.b.c.d");
SimpleString addressAC = new SimpleString("a.c");
SimpleString address = new SimpleString("*.b.#");
SimpleString queueName1 = new SimpleString("Q1");
SimpleString queueName2 = new SimpleString("Q2");
SimpleString queueName = new SimpleString("Q");
clientSession.createQueue(addressAB, queueName1, null, false);
clientSession.createQueue(addressAC, queueName2, null, false);
clientSession.createQueue(address, queueName, null, false);
ClientProducer producer = clientSession.createProducer(addressAB);
ClientProducer producer2 = clientSession.createProducer(addressAC);
ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
clientSession.start();
producer.send(createTextMessage(clientSession, "m1"));
producer2.send(createTextMessage(clientSession, "m2"));
ClientMessage m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m1", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
}
示例14: run
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@Override
public void run() {
while (true) {
try {
ClientMessage message = consumer.receive(5000);
if (message == null) {
break;
}
message.acknowledge();
payloads.add(message.getBodyBuffer().readString());
Thread.sleep(110);
} catch (Exception e) {
e.printStackTrace();
}
}
latch.countDown();
}
示例15: nextElement
import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入依赖的package包/类
@Override
public ActiveMQMessage nextElement() {
ActiveMQMessage msg;
if (hasMoreElements()) {
ClientMessage next = current;
current = null;
msg = ActiveMQMessage.createMessage(next, session, options);
try {
msg.doBeforeReceive();
} catch (Exception e) {
ActiveMQJMSClientLogger.LOGGER.errorCreatingMessage(msg.getCoreMessage().toString(), e);
return null;
}
return msg;
} else {
throw new NoSuchElementException();
}
}