clientOptions.setProperty(MessageContextConstants.TRANSPORT_URL,transportTo);
String sequenceKey = SandeshaUtil.getUUID();
clientOptions.setProperty(SandeshaClientConstants.SEQUENCE_KEY,sequenceKey);
ServiceClient serviceClient = new ServiceClient (configContext,null);
String acksTo = null;//serviceClient.getMyEPR(Constants.TRANSPORT_HTTP).getAddress();
clientOptions.setProperty(SandeshaClientConstants.AcksTo,acksTo);
clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
String offeredSequeiceId = SandeshaUtil.getUUID();
clientOptions.setProperty(SandeshaClientConstants.OFFERED_SEQUENCE_ID,offeredSequeiceId);
serviceClient.setOptions(clientOptions);
//serviceClient.
clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP);
clientOptions.setUseSeparateListener(true);
clientOptions.setAction("urn:wsrm:EchoString");
serviceClient.setOptions(clientOptions);
TestCallback callback1 = new TestCallback ("Callback 1");
serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo1",sequenceKey),callback1);
TestCallback callback2 = new TestCallback ("Callback 2");
serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo2",sequenceKey),callback2);
clientOptions.setProperty(SandeshaClientConstants.LAST_MESSAGE, "true");
TestCallback callback3 = new TestCallback ("Callback 3");
serviceClient.sendReceiveNonBlocking (getEchoOMBlock("echo3",sequenceKey),callback3);
Thread.sleep(15000);
//assertions for the out sequence.
//assertions for the out sequence.
SequenceReport outgoingSequenceReport = SandeshaClient.getOutgoingSequenceReport(serviceClient);
assertEquals (outgoingSequenceReport.getCompletedMessages().size(),3);
assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(1)));
assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(2)));
assertTrue(outgoingSequenceReport.getCompletedMessages().contains(new Long(3)));
assertEquals(outgoingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
assertEquals(outgoingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_OUT);
SequenceReport incomingSequenceReport = SandeshaClient.getIncomingSequenceReport(offeredSequeiceId,configContext);
assertEquals (incomingSequenceReport.getCompletedMessages().size(),3);
assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(1)));
assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(2)));
assertTrue(incomingSequenceReport.getCompletedMessages().contains(new Long(3)));
assertEquals(incomingSequenceReport.getSequenceStatus(),SequenceReport.SEQUENCE_STATUS_TERMINATED);
assertEquals(incomingSequenceReport.getSequenceDirection(),SequenceReport.SEQUENCE_DIRECTION_IN);
assertTrue(callback1.isComplete());
assertNotNull (callback1.getResult(),"echo1");
assertTrue(callback2.isComplete());
assertNotNull (callback2.getResult(),"echo1echo2");
assertTrue(callback3.isComplete());
assertNotNull (callback3.getResult(),"echo1echo2echo3");
configContext.getListenerManager().stop();
serviceClient.cleanup();
}