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();
UnitTestCase.expectHornetQException("can not send a request on a closed ClientRequestor",
HornetQException.OBJECT_CLOSED,
new HornetQAction()
{
public void run() throws Exception
{
requestor.request(session.createMessage(false), 500);
}
});
}