use of javax.jms.Destination in project tomee by apache.
the class JmsTest method createListener.
private Destination createListener(final Connection connection) throws JMSException {
final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the request Queue
final Destination requestQueue = session.createQueue(REQUEST_QUEUE_NAME);
final MessageConsumer consumer = session.createConsumer(requestQueue);
consumer.setMessageListener(new MessageListener() {
@Override
@SuppressWarnings("unchecked")
public void onMessage(final Message message) {
// if we got a dummy (non ObjectMessage) return
if (!(message instanceof ObjectMessage))
return;
MessageProducer producer = null;
try {
// process request
final ObjectMessage requestMessage = (ObjectMessage) message;
final Map<String, Object[]> request = (Map<String, Object[]>) requestMessage.getObject();
final Object[] args = request.get("args");
final String returnValue = "test-" + args[0];
// create response map
final Map<String, Object> response = new TreeMap<String, Object>();
response.put("return", returnValue);
// create response message
final ObjectMessage responseMessage = session.createObjectMessage();
responseMessage.setJMSCorrelationID(requestMessage.getJMSCorrelationID());
responseMessage.setObject((Serializable) response);
// send response message
producer = session.createProducer(requestMessage.getJMSReplyTo());
producer.send(responseMessage);
} catch (final Throwable e) {
e.printStackTrace();
} finally {
MdbUtil.close(producer);
}
}
});
return requestQueue;
}
use of javax.jms.Destination in project tomee by apache.
the class MdbTest method createSender.
private void createSender() throws JMSException {
Connection connection = null;
Session session = null;
MessageProducer producer = null;
MessageConsumer consumer = null;
try {
connection = connectionFactory.createConnection();
connection.start();
// create request
final Map<String, Object> request = new TreeMap<String, Object>();
request.put("args", new Object[] { "cheese" });
// create a new temp response queue
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
final Destination responseQueue = session.createTemporaryQueue();
// Create a request messages
final ObjectMessage requestMessage = session.createObjectMessage();
requestMessage.setJMSReplyTo(responseQueue);
requestMessage.setObject((Serializable) request);
// Send the request message
producer = session.createProducer(session.createQueue(REQUEST_QUEUE_NAME));
producer.send(requestMessage);
// wait for the response message
consumer = session.createConsumer(responseQueue);
final Message message = consumer.receive(30000);
// verify message
assertNotNull("Did not get a response message", message);
assertTrue("Response message is not an ObjectMessage", message instanceof ObjectMessage);
final ObjectMessage responseMessage = (ObjectMessage) message;
final Serializable object = responseMessage.getObject();
assertNotNull("Response ObjectMessage contains a null object");
assertTrue("Response ObjectMessage does not contain an instance of Map", object instanceof Map);
final Map<String, String> response = (Map<String, String>) object;
// process results
final String returnValue = (String) response.get("return");
assertEquals("test-cheese", returnValue);
} finally {
MdbUtil.close(consumer);
MdbUtil.close(producer);
MdbUtil.close(session);
MdbUtil.close(connection);
}
}
use of javax.jms.Destination in project tomee by apache.
the class SimpleJmsTest method testProxy.
public void testProxy() throws Exception {
// create reciever object
final TestObject testObject = new TestObject("foo");
final MdbInvoker mdbInvoker = new MdbInvoker(connectionFactory, testObject);
// Create a Session
final Connection connection = connectionFactory.createConnection();
connection.start();
final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the request Queue
final Destination requestQueue = session.createQueue(REQUEST_QUEUE_NAME);
final MessageConsumer consumer = session.createConsumer(requestQueue);
consumer.setMessageListener(mdbInvoker);
// create in invoker
final TestInterface testInterface = MdbProxy.newProxyInstance(TestInterface.class, connectionFactory, REQUEST_QUEUE_NAME);
assertEquals("foobar", testInterface.echo("bar"));
assertEquals("foobar", testInterface.echo("bar"));
assertEquals("foobar", testInterface.echo("bar"));
assertEquals("foobar", testInterface.echo("bar"));
assertEquals("foobar", testInterface.echo("bar"));
}
use of javax.jms.Destination in project tomee by apache.
the class BasicMdbTests method setUp.
protected void setUp() throws Exception {
super.setUp();
final Destination destination = (Destination) initialContext.lookup("client/tests/messagedriven/mdb/BasicMdb");
basicMdbObject = MdbProxy.newProxyInstance(BasicMdbObject.class, connectionFactory, destination);
}
use of javax.jms.Destination in project tomee by apache.
the class BmtMdbAllowedOperationsTests method setUp.
protected void setUp() throws Exception {
super.setUp();
final Destination destination = (Destination) initialContext.lookup("Basic BMT Mdb Bean");
basicMdbObject = MdbProxy.newProxyInstance(BasicMdbObject.class, connectionFactory, destination);
basicMdbObject.businessMethod("foo");
}
Aggregations