/** * Create a new instance of ExchangeInvocation. * @param exchange exchange to be used for the invocation * @param replyHandler takes care of replies/faults for the exchange */ public ExchangeInvocation(Exchange exchange, InvocationResponseHandler replyHandler) { _exchange = exchange; _inMessage = _exchange.createMessage(); _replyHandler = replyHandler; }
/** * Create a new instance of ExchangeInvocation. * @param exchange exchange to be used for the invocation * @param replyHandler takes care of replies/faults for the exchange */ public ExchangeInvocation(Exchange exchange, InvocationResponseHandler replyHandler) { _exchange = exchange; _inMessage = _exchange.createMessage(); _replyHandler = replyHandler; }
@Override public Message createMessage() { return getExchange().createMessage(); }
@Override public Message createMessage() { return getExchange().createMessage(); }
/** * {@inheritDoc} */ @Override public org.switchyard.Message compose(MappedRecordBindingData source, Exchange exchange) throws Exception { final org.switchyard.Message message = exchange.createMessage(); getContextMapper().mapFrom(source, exchange.getContext(message)); Map<Object,Object> m = new HashMap<Object,Object>(); m.putAll(source.getRecord()); message.setContent(m); return message; }
/** * {@inheritDoc} */ @Override public Message compose(StreamableRecordBindingData source, Exchange exchange) throws Exception { final org.switchyard.Message message = exchange.createMessage(); getContextMapper().mapFrom(source, exchange.getContext(message)); ByteArrayOutputStream baos = new ByteArrayOutputStream(); source.getRecord().write(baos); message.setContent(new ByteArrayInputStream(baos.toByteArray())); return message; }
/** * {@inheritDoc} */ @Override public org.switchyard.Message compose(IndexedRecordBindingData source, Exchange exchange) throws Exception { final org.switchyard.Message message = exchange.createMessage(); getContextMapper().mapFrom(source, exchange.getContext(message)); List<Object> l = new ArrayList<Object>(); l.addAll(source.getRecord()); message.setContent(l); return message; }
@Override public void handleMessage(Exchange exchange) throws HandlerException { Message fault = exchange.createMessage(); fault.setContent(new Exception("testFaultTransformSequence")); exchange.sendFault(fault); } };
@Test public void testSendFaultOnNewExchange() { Exchange exchange = new ExchangeImpl(_domain, _dispatch); try { exchange.sendFault(exchange.createMessage()); Assert.fail("Sending a fault on a new exchange is not allowed"); } catch (IllegalStateException illEx) { return; } }
public void handleMessage(Exchange exchange) { Assert.assertEquals( exchange.getMessage().getContent(), inMsgContent); Message outMsg = exchange.createMessage(); outMsg.setContent(outMsgContent); try { exchange.send(outMsg); } catch (Exception ex) { Assert.fail(ex.toString()); } } };
/** * {@inheritDoc} */ @Override public Message compose(RESTEasyBindingData source, Exchange exchange) throws Exception { final Message message = exchange.createMessage(); getContextMapper().mapFrom(source, exchange.getContext(message)); Object content = null; if (source.getParameters().length > 0) { content = source.getParameters()[0]; } message.setContent(content); return message; }
@Test public void testPhaseIsInAfterInputMessage() { ServiceReference service = _domain.createInOnlyService(new QName("InPhase")); Exchange exchange = service.createExchange(); exchange.send(exchange.createMessage()); Assert.assertEquals(ExchangePhase.IN, exchange.getPhase()); }
@Test public void testInMessageTrace() { ServiceReference service = _domain.createInOnlyService(new QName("InTrace")); Exchange exchange = service.createExchange(); exchange.send(exchange.createMessage()); }
@Override public void handleMessage(final Exchange exchange) throws HandlerException { _messages.offer(exchange); if (_forwardInToOut) { exchange.send(exchange.getMessage().copy()); } else if (_forwardInToFault) { exchange.sendFault(exchange.createMessage()); } }
@Test public void testNoNPEOnInOnlyFault() throws Exception { QName serviceName = new QName("testNoNPEOnNoConsumer"); MockHandler provider = new MockHandler() { @Override public void handleMessage(Exchange exchange) throws HandlerException { throw new HandlerException("explode"); } }; ServiceReference service = _domain.createInOnlyService(serviceName, provider); // Don't provide a consumer... Exchange exchange = service.createExchange(); exchange.send(exchange.createMessage()); }
@Test public void testMessageIdSetOnSend() { ServiceReference service = _domain.createInOnlyService(new QName("IdTest")); Exchange exchange = service.createExchange(); exchange.send(exchange.createMessage()); Assert.assertNotNull(exchange.getMessage().getContext().getProperty(Exchange.MESSAGE_ID)); }
@Test public void testPhaseIsOutAfterOutputMessage() { MockHandler replyHandler = new MockHandler(); ServiceReference service = _domain.createInOutService( new QName("OutPhase"), new MockHandler().forwardInToOut()); Exchange exchange = service.createExchange(replyHandler); exchange.send(exchange.createMessage()); replyHandler.waitForOKMessage(); Assert.assertEquals(ExchangePhase.OUT, exchange.getPhase()); }
@Test public void testInOutMessageTrace() throws Exception { ServiceReference service = _domain.createInOutService( new QName("InOutTrace"), new MockHandler().forwardInToOut()); Exchange exchange = service.createExchange(new MockHandler()); exchange.send(exchange.createMessage()); }
@Test public void testPhaseIsOutAfterFaultMessage() { MockHandler replyHandler = new MockHandler(); ServiceReference service = _domain.createInOutService( new QName("FaultPhase"), new MockHandler().forwardInToFault()); Exchange exchange = service.createExchange(replyHandler); exchange.send(exchange.createMessage()); replyHandler.waitForFaultMessage(); Assert.assertEquals(ExchangePhase.OUT, exchange.getPhase()); }
@Test public void testInFaultMessageTrace() throws Exception { ServiceReference service = _domain.createInOutService( new QName("InFaultTrace"), new MockHandler().forwardInToOut()); Exchange exchange = service.createExchange(new MockHandler()); exchange.send(exchange.createMessage()); }