in rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java [219:345]
private void encode(SoapMessage message,
AddressingProperties maps) {
if (maps != null) {
cacheExchange(message, maps);
LOG.log(Level.FINE, "Outbound WS-Addressing headers");
try {
List<Header> header = message.getHeaders();
discardMAPs(header, maps);
JAXBContext jaxbContext =
org.apache.cxf.ws.addressing.VersionTransformer.getExposedJAXBContext(
maps.getNamespaceURI());
QName duplicate = maps.getDuplicate();
encodeAsExposed(maps,
message,
maps.getAction(),
Names.WSA_ACTION_QNAME,
AttributedURIType.class,
jaxbContext);
if (Names.WSA_ACTION_QNAME.equals(duplicate)) {
encodeAsExposed(maps,
message,
maps.getAction(),
Names.WSA_ACTION_QNAME,
AttributedURIType.class,
jaxbContext);
}
encodeAsExposed(maps,
message,
maps.getMessageID(),
Names.WSA_MESSAGEID_QNAME,
AttributedURIType.class,
jaxbContext);
if (Names.WSA_MESSAGEID_QNAME.equals(duplicate)) {
encodeAsExposed(maps,
message,
maps.getMessageID(),
Names.WSA_MESSAGEID_QNAME,
AttributedURIType.class,
jaxbContext);
}
encodeAsExposed(maps,
message,
maps.getTo(),
Names.WSA_TO_QNAME,
AttributedURIType.class,
jaxbContext);
if (Names.WSA_TO_QNAME.equals(duplicate)) {
encodeAsExposed(maps,
message,
maps.getTo(),
Names.WSA_TO_QNAME,
AttributedURIType.class,
jaxbContext);
}
if (needsReplyTo(maps, message)) {
encodeAsExposed(maps,
message,
maps.getReplyTo(),
Names.WSA_REPLYTO_QNAME,
EndpointReferenceType.class,
jaxbContext);
if (Names.WSA_REPLYTO_QNAME.equals(duplicate)) {
encodeAsExposed(maps,
message,
maps.getReplyTo(),
Names.WSA_REPLYTO_QNAME,
EndpointReferenceType.class,
jaxbContext);
}
}
encodeAsExposed(maps,
message,
maps.getRelatesTo(),
Names.WSA_RELATESTO_QNAME,
RelatesToType.class,
jaxbContext);
if (Names.WSA_RELATESTO_QNAME.equals(duplicate)) {
encodeAsExposed(maps,
message,
maps.getRelatesTo(),
Names.WSA_RELATESTO_QNAME,
RelatesToType.class,
jaxbContext);
}
encodeAsExposed(maps,
message,
maps.getFrom(),
Names.WSA_FROM_QNAME,
EndpointReferenceType.class,
jaxbContext);
if (Names.WSA_FROM_QNAME.equals(duplicate)) {
encodeAsExposed(maps,
message,
maps.getFrom(),
Names.WSA_FROM_QNAME,
EndpointReferenceType.class,
jaxbContext);
}
if (needsFaultTo(maps)) {
encodeAsExposed(maps,
message,
maps.getFaultTo(),
Names.WSA_FAULTTO_QNAME,
EndpointReferenceType.class,
jaxbContext);
if (Names.WSA_FAULTTO_QNAME.equals(duplicate)) {
encodeAsExposed(maps,
message,
maps.getFaultTo(),
Names.WSA_FAULTTO_QNAME,
EndpointReferenceType.class,
jaxbContext);
}
}
encodeReferenceParameters(maps, message, jaxbContext);
maps.setDuplicate(null);
propogateAction(maps.getAction(), message);
applyMAPValidation(message);
} catch (JAXBException je) {
LOG.log(Level.WARNING, "SOAP_HEADER_ENCODE_FAILURE_MSG", je);
}
}
}