protected NormalizedMessage extract(MessageExchange me) throws ExecutionException { if (me.getStatus() == ExchangeStatus.ERROR) { throw new ExecutionException(me.getError()); } else if (me.getFault() != null) { throw new ExecutionException(new FaultException("Fault occured", me, me.getFault())); } else { return me.getMessage("out"); } } }
protected void assertExchangeWorked(MessageExchange me) throws Exception { if (me.getStatus() == ExchangeStatus.ERROR) { if (me.getError() != null) { throw me.getError(); } else { fail("Received ERROR status"); } } else if (me.getFault() != null) { fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent())); } }
Exception e = exchange.getError(); if (e == null) { e = new JBIException("Unknown error");
private void processReponse(MessageExchange messageExchange, Exchange exchange) throws MessagingException { if (messageExchange.getStatus() == ExchangeStatus.ERROR) { exchange.setException(messageExchange.getError()); } else if (messageExchange.getStatus() == ExchangeStatus.ACTIVE) { // first copy the exchange headers binding.copyPropertiesFromJbiToCamel(messageExchange, exchange); // then copy the out/fault message if (messageExchange.getFault() != null) { binding.copyFromJbiToCamel(messageExchange.getMessage("fault"), exchange.getOut()); exchange.getOut().setBody(new FaultException("Fault occured for " + exchange.getPattern() + " exchange", messageExchange, messageExchange.getFault())); exchange.getOut().setFault(true); } else if (messageExchange.getMessage("out") != null) { binding.copyFromJbiToCamel(messageExchange.getMessage("out"), exchange.getOut()); } done(messageExchange); } }
private void handleResponse(MessageExchange exchange, HttpServletRequest request, HttpServletResponse response) throws Exception { if (exchange.getStatus() == ExchangeStatus.ERROR) { Exception e = exchange.getError(); if (e == null) { e = new Exception("Unknown error (exchange aborted ?)"); } throw e; } else if (exchange.getStatus() == ExchangeStatus.ACTIVE) { try { Fault fault = exchange.getFault(); if (fault != null) { processFault(exchange, request, response); } else { processResponse(exchange, request, response); } done(exchange); } catch (Exception e) { fail(exchange, e); throw e; } } else if (exchange.getStatus() == ExchangeStatus.DONE) { // This happens when there is no response to send back response.setStatus(HttpServletResponse.SC_ACCEPTED); } }
@SuppressWarnings("null") public TransportedMessageExchange(final MessageExchange exchange) { this.exchangeId = exchange.getExchangeId(); this.status = toStatus(exchange.getStatus()); this.operation = exchange.getOperation(); this.pattern = exchange.getPattern(); this.error = exchange.getError(); this.fault = exchange.getFault(); this.in = exchange.getMessage(Exchange.IN_MESSAGE_NAME); this.out = exchange.getMessage(Exchange.OUT_MESSAGE_NAME); @SuppressWarnings({ "unchecked", "cast" }) final Set<String> propertyNames = (Set<String>) exchange.getPropertyNames(); for (String name : propertyNames) { final Object property = exchange.getProperty(name); if (property instanceof Serializable) { this.properties.put(name, (Serializable) property); } else { // TODO log?!?! } } }
for (MessageExchange me : exchanges) { if (exchange.getStatus() == ExchangeStatus.ERROR) { me.setError(exchange.getError());
private void handleResponse(MessageExchange exchange, HttpServletRequest request, HttpServletResponse response) throws Exception { if (exchange.getStatus() == ExchangeStatus.ERROR) { Exception e = exchange.getError(); if (e == null) { e = new Exception("Unknown error (exchange aborted ?)"); } throw e; } else if (exchange.getStatus() == ExchangeStatus.ACTIVE) { try { Fault fault = exchange.getFault(); if (fault != null) { sendFault(exchange, fault, request, response); } else { NormalizedMessage outMsg = exchange.getMessage("out"); if (outMsg != null) { sendOut(exchange, outMsg, request, response); } } done(exchange); } catch (Exception e) { fail(exchange, e); throw e; } } else if (exchange.getStatus() == ExchangeStatus.DONE) { // This happens when there is no response to send back sendAccepted(exchange, request, response); } }
protected void processSync(MessageExchange exchange) throws Exception { if (!(exchange instanceof InOnly) && !(exchange instanceof RobustInOnly)) { fail(exchange, new UnsupportedOperationException("Use an InOnly or RobustInOnly MEP")); return; } NormalizedMessage in = MessageUtil.copyIn(exchange); for (int i = 0; i < recipients.length; i++) { MessageExchange me = getExchangeFactory().createExchange(exchange.getPattern()); recipients[i].configureTarget(me, getContext()); in.setProperty(RECIPIENT_LIST_COUNT, new Integer(recipients.length)); in.setProperty(RECIPIENT_LIST_INDEX, new Integer(i)); in.setProperty(RECIPIENT_LIST_CORRID, exchange.getExchangeId()); MessageUtil.transferToIn(in, me); sendSync(me); if (me.getStatus() == ExchangeStatus.ERROR && reportErrors) { fail(exchange, me.getError()); return; } else if (me.getFault() != null && reportErrors) { MessageUtil.transferFaultToFault(me, exchange); sendSync(exchange); done(me); return; } } done(exchange); }
fail(exchange, parts[i].getError()); return;
fail(original, exchange.getError());
fail(cme, exchange.getError());
protected Message fromNMSResponse(MessageExchange exchange, Context ctx, Session session) throws Exception { Message response = null; if (exchange.getStatus() == ExchangeStatus.ERROR) { // marshal error Exception e = exchange.getError(); if (e == null) { e = new Exception("Unkown error"); } response = endpoint.getMarshaler().toJMS(e, session); } else if (exchange.getStatus() == ExchangeStatus.ACTIVE) { // check for fault Fault jbiFault = exchange.getFault(); if (jbiFault != null) { // convert fault to SOAP message SoapFault fault = new SoapFault(SoapFault.RECEIVER, null, null, null, jbiFault.getContent()); SoapMessage soapFault = soapHelper.onFault(ctx, fault); Map headers = (Map) jbiFault.getProperty(JbiConstants.PROTOCOL_HEADERS); response = endpoint.getMarshaler().toJMS(soapFault, headers, session); } else { NormalizedMessage outMsg = exchange.getMessage("out"); if (outMsg != null) { SoapMessage out = soapHelper.onReply(ctx, outMsg); Map headers = (Map) outMsg.getProperty(JbiConstants.PROTOCOL_HEADERS); response = endpoint.getMarshaler().toJMS(out, headers, session); } } } return response; }
fail(me, exchange.getError());
fail(original, exchange.getError());
protected void processSync(MessageExchange exchange) throws Exception { if (!(exchange instanceof InOnly) && !(exchange instanceof RobustInOnly)) { fail(exchange, new UnsupportedOperationException("Use an InOnly or RobustInOnly MEP")); } else { NormalizedMessage in = MessageUtil.copyIn(exchange); MessageExchange me = getExchangeFactory().createExchange(exchange.getPattern()); target.configureTarget(me, getContext()); MessageUtil.transferToIn(in, me); if (filter.matches(me)) { sendSync(me); if (me.getStatus() == ExchangeStatus.ERROR && reportErrors) { fail(exchange, me.getError()); } else if (me.getStatus() == ExchangeStatus.DONE) { done(exchange); } else if (me.getFault() != null && reportErrors) { Fault fault = MessageUtil.copyFault(me); done(me); MessageUtil.transferToFault(fault, exchange); sendSync(exchange); } } else { done(exchange); } } }
protected void processSync(MessageExchange exchange) throws Exception { if (null == target.getOperation()) { //not specify operation for the target, so save the src one by default target.setOperation(exchange.getOperation()); } // Create exchange for target MessageExchange tme = getExchangeFactory().createExchange(exchange.getPattern()); target.configureTarget(tme, getContext()); sendSyncToListenerAndTarget(exchange, tme, inListener, "in", false); if (tme.getStatus() == ExchangeStatus.DONE) { done(exchange); } else if (tme.getStatus() == ExchangeStatus.ERROR) { fail(exchange, tme.getError()); } else if (tme.getFault() != null) { sendSyncToListenerAndTarget(tme, exchange, faultListener, "fault", isCopyProperties()); done(tme); } else if (tme.getMessage("out") != null) { sendSyncToListenerAndTarget(tme, exchange, outListener, "out", isCopyProperties()); done(tme); } else { done(tme); throw new IllegalStateException("Exchange status is " + ExchangeStatus.ACTIVE + " but has no Out nor Fault message"); } }
done(exchange); } else if (tme.getStatus() == ExchangeStatus.ERROR) { fail(exchange, tme.getError()); } else if (tme.getFault() != null) { Fault fault = MessageUtil.copyFault(tme);
done(exchange); } else if (me.getStatus() == ExchangeStatus.ERROR) { fail(exchange, me.getError()); } else if (me.getFault() != null) { if (exchange instanceof InOnly) {