protected void invokeInboundChain(Exchange ex, Endpoint ep) { Message m = getInBoundMessage(ex); Message inMsg = ep.getBinding().createMessage(); MessageImpl.copyContent(m, inMsg); // Copy Response Context to Client inBound Message // TODO a Context Filter Strategy required. inMsg.putAll(m); inMsg.put(Message.REQUESTOR_ROLE, Boolean.TRUE); inMsg.put(Message.INBOUND_MESSAGE, Boolean.TRUE); inMsg.setExchange(ex); Exception exc = inMsg.getContent(Exception.class); if (exc != null) { ex.setInFaultMessage(inMsg); ColocInFaultObserver observer = new ColocInFaultObserver(bus); observer.onMessage(inMsg); } else { // Handle Response ex.setInMessage(inMsg); PhaseManager pm = bus.getExtension(PhaseManager.class); SortedSet<Phase> phases = new TreeSet<Phase>(pm.getInPhases()); ColocUtil.setPhases(phases, Phase.USER_LOGICAL, Phase.PRE_INVOKE); InterceptorChain chain = ColocUtil.getInInterceptorChain(ex, phases); inMsg.setInterceptorChain(chain); chain.doIntercept(inMsg); } ex.put(ClientImpl.FINISHED, Boolean.TRUE); }
@Override public void close(Message message) throws IOException { if (Boolean.TRUE.equals(message.getExchange().get(LocalConduit.DIRECT_DISPATCH))) { final Exchange exchange = (Exchange) message.getExchange().get(LocalConduit.IN_EXCHANGE); MessageImpl copy = new MessageImpl(); copy.putAll(message); MessageImpl.copyContent(message, copy); CachedOutputStream stream = (CachedOutputStream) message.getContent(OutputStream.class); copy.setContent(InputStream.class, stream.getInputStream()); if (exchange != null && exchange.getInMessage() == null) { exchange.setInMessage(copy); } conduit.getMessageObserver().onMessage(copy); return; } super.close(message); }
@Override public void onMessage(byte[] message, ZMQ.Socket zmqSocket) { getLogger().log(Level.FINE, "server received request: ", message); Message inMessage = new MessageImpl(); inMessage.setContent(InputStream.class, new ByteArrayInputStream(message)); ((MessageImpl) inMessage).setDestination(this); inMessage.put("socket", zmqSocket); incomingObserver.onMessage(inMessage); }
public void process(Exchange camelExchange) throws Exception { LOG.trace("Received request : {}", camelExchange); org.apache.cxf.message.Message cxfMessage = endpoint .getCxfBeanBinding() .createCxfMessageFromCamelExchange(camelExchange, endpoint.getHeaderFilterStrategy()); cxfMessage.put(CamelTransportConstants.CAMEL_EXCHANGE, camelExchange); ((MessageImpl) cxfMessage).setDestination(this); // Handling the incoming message // The response message will be send back by the outgoing chain incomingObserver.onMessage(cxfMessage); }