/** * Store MAPs in the message. * * @param message the current message * @param isOutbound true if the message is outbound */ public static void storeMAPs(AddressingProperties maps, Message message, boolean isOutbound) { storeMAPs(maps, message, isOutbound, isRequestor(message), false); }
/** * Store MAPs in the message. * * @param message the current message * @param isOutbound true if the message is outbound */ public static void storeMAPs(AddressingProperties maps, Message message, boolean isOutbound) { storeMAPs(maps, message, isOutbound, isRequestor(message), false); }
/** * Store MAPs in the message. * * @param message the current message * @param isOutbound true if the message is outbound */ public static void storeMAPs(AddressingProperties maps, Message message, boolean isOutbound) { storeMAPs(maps, message, isOutbound, isRequestor(message), false); }
/** * Store MAPs in the message. * * @param message the current message * @param isOutbound true if the message is outbound */ public static void storeMAPs(AddressingProperties maps, Message message, boolean isOutbound) { storeMAPs(maps, message, isOutbound, isRequestor(message), false); }
private boolean isProtocolFault(Message message) { return !ContextUtils.isRequestor(message) && (RMContextUtils.getProtocolVariation(message) == null || message.getContent(Exception.class) instanceof SequenceFault); }
private boolean isRequestLeg(SoapMessage message) { return (ContextUtils.isRequestor(message) && ContextUtils.isOutbound(message)) || (!ContextUtils.isRequestor(message) && !ContextUtils.isOutbound(message)); }
/** * Cache exchange for correlated response * * @param message the current message * @param maps the addressing properties */ private void cacheExchange(SoapMessage message, AddressingProperties maps) { if (ContextUtils.isRequestor(message) && !message.getExchange().isOneWay()) { uncorrelatedExchanges.put(maps.getMessageID().getValue(), message.getExchange()); } }
/** * Cache exchange for correlated response * * @param message the current message * @param maps the addressing properties */ private void cacheExchange(SoapMessage message, AddressingProperties maps) { if (ContextUtils.isRequestor(message) && !message.getExchange().isOneWay()) { uncorrelatedExchanges.put(maps.getMessageID().getValue(), message.getExchange()); } }
/** * Marks a message as partial response * * @param message the current message */ private void markPartialResponse(SoapMessage message, AddressingProperties maps) { if (ContextUtils.isRequestor(message) && null != maps && (null == maps.getRelatesTo() || (null != maps.getRelatesTo() && Names.WSA_UNSPECIFIED_RELATIONSHIP.equals(maps.getRelatesTo().getValue())))) { message.put(Message.PARTIAL_RESPONSE_MESSAGE, Boolean.TRUE); } }
/** * Perform MAP aggregation. * * @param message the current message * @param isFault true if a fault is being mediated */ private void aggregate(Message message, boolean isFault) { boolean isRequestor = ContextUtils.isRequestor(message); AddressingProperties maps = assembleGeneric(message); addRoleSpecific(maps, message, isRequestor, isFault); // outbound property always used to store MAPs, as this handler // aggregates only when either: // a) message really is outbound // b) message is currently inbound, but we are about to abort dispatch // due to an incoming MAPs validation failure, so the dispatch // will shortly traverse the outbound path ContextUtils.storeMAPs(maps, message, true, isRequestor); }
/** * Perform MAP aggregation. * * @param message the current message * @param isFault true if a fault is being mediated */ private void aggregate(Message message, boolean isFault) { boolean isRequestor = ContextUtils.isRequestor(message); AddressingProperties maps = assembleGeneric(message); addRoleSpecific(maps, message, isRequestor, isFault); // outbound property always used to store MAPs, as this handler // aggregates only when either: // a) message really is outbound // b) message is currently inbound, but we are about to abort dispatch // due to an incoming MAPs validation failure, so the dispatch // will shortly traverse the outbound path ContextUtils.storeMAPs(maps, message, true, isRequestor); }
/** * Marks a message as partial response * * @param message the current message */ private void markPartialResponse(SoapMessage message, AddressingProperties maps) { if (ContextUtils.isRequestor(message) && null != maps && (null == maps.getRelatesTo() || (null != maps.getRelatesTo() && Names.WSA_UNSPECIFIED_RELATIONSHIP.equals(maps.getRelatesTo().getValue())))) { message.put(Message.PARTIAL_RESPONSE_MESSAGE, Boolean.TRUE); } }
/** * Determine if addressing is being used * * @param message the current message * @pre message is outbound */ private boolean usingAddressing(Message message) { boolean ret = true; if (ContextUtils.isRequestor(message)) { if (hasUsingAddressing(message) || hasAddressingAssertion(message) || hasUsingAddressingAssertion(message)) { return true; } if (!usingAddressingAdvisory || !WSAContextUtils.retrieveUsingAddressing(message)) { ret = false; } } else { ret = getMAPs(message, false, false) != null; } return ret; }
private boolean isIncomingPartialResponse(SoapMessage message) throws SOAPException { AddressingProperties maps = (AddressingProperties)message.get(ADDRESSING_PROPERTIES_INBOUND); return !ContextUtils.isOutbound(message) && ContextUtils.isRequestor(message) && maps != null && Names.WSA_ANONYMOUS_ADDRESS.equals(maps.getTo().getValue()); }
private boolean isOutgoingPartialResponse(SoapMessage message) { AddressingProperties maps = (AddressingProperties)message.get(ADDRESSING_PROPERTIES_OUTBOUND); return ContextUtils.isOutbound(message) && !ContextUtils.isRequestor(message) && maps != null && Names.WSA_ANONYMOUS_ADDRESS.equals(maps.getTo().getValue()); }
/** * Determine if addressing is being used * * @param message the current message * @pre message is outbound */ private boolean usingAddressing(Message message) { boolean ret = true; if (ContextUtils.isRequestor(message)) { if (hasUsingAddressing(message) || hasAddressingAssertion(message) || hasUsingAddressingAssertion(message)) { return true; } if (!usingAddressingAdvisory || !WSAContextUtils.retrieveUsingAddressing(message)) { ret = false; } } else { ret = getMAPs(message, false, false) != null; } return ret; }
public void handleFault(SoapMessage message) { if (!ContextUtils.isRequestor(message)) { Exchange exchange = message.getExchange(); Message inMessage = exchange.getInMessage(); final AddressingProperties maps = ContextUtils.retrieveMAPs(inMessage, false, false, true); if (maps != null && !ContextUtils.isGenericAddress(maps.getFaultTo())) { //Just keep the wsa headers to remove the not understand headers if (exchange.getOutMessage() != null) { message = (SoapMessage)exchange.getOutMessage(); } Iterator<Header> iterator = message.getHeaders().iterator(); while (iterator.hasNext()) { Header header = iterator.next(); if (!isWSAHeader(header)) { iterator.remove(); } } exchange.setOneWay(false); exchange.setOutMessage(message); //manually set the action message.put(ContextUtils.ACTION, WSA_ACTION); Destination destination = createDecoupledDestination( exchange, maps.getFaultTo()); exchange.setDestination(destination); } } }
public void handleFault(SoapMessage message) { if (!ContextUtils.isRequestor(message)) { Exchange exchange = message.getExchange(); Message inMessage = exchange.getInMessage(); final AddressingProperties maps = ContextUtils.retrieveMAPs(inMessage, false, false, true); if (maps != null && !ContextUtils.isGenericAddress(maps.getFaultTo())) { //Just keep the wsa headers to remove the not understand headers if (exchange.getOutMessage() != null) { message = (SoapMessage)exchange.getOutMessage(); } Iterator<Header> iterator = message.getHeaders().iterator(); while (iterator.hasNext()) { Header header = iterator.next(); if (!isWSAHeader(header)) { iterator.remove(); } } exchange.setOneWay(false); exchange.setOutMessage(message); //manually set the action message.put(ContextUtils.ACTION, WSA_ACTION); Destination destination = createDecoupledDestination( exchange, maps.getFaultTo()); exchange.setDestination(destination); } } }
/** * check if MessageID exists in the message, if not, only generate new MessageID for outbound message. * @param message */ private void checkMessageID(Message message) { if (!MessageUtils.isOutbound(message)) return; AddressingProperties maps = ContextUtils.retrieveMAPs(message, false, MessageUtils.isOutbound(message)); if (maps == null) { maps = new AddressingProperties(); } if (maps.getMessageID() == null) { String messageID = ContextUtils.generateUUID(); boolean isRequestor = ContextUtils.isRequestor(message); maps.setMessageID(ContextUtils.getAttributedURI(messageID)); ContextUtils.storeMAPs(maps, message, ContextUtils.isOutbound(message), isRequestor); } }
/** * check if MessageID exists in the message, if not, only generate new MessageID for outbound message. * @param message */ private void checkMessageID(Message message) { if (!MessageUtils.isOutbound(message)) return; AddressingProperties maps = ContextUtils.retrieveMAPs(message, false, MessageUtils.isOutbound(message)); if (maps == null) { maps = new AddressingProperties(); } if (maps.getMessageID() == null) { String messageID = ContextUtils.generateUUID(); boolean isRequestor = ContextUtils.isRequestor(message); maps.setMessageID(ContextUtils.getAttributedURI(messageID)); ContextUtils.storeMAPs(maps, message, ContextUtils.isOutbound(message), isRequestor); } }