use of org.apache.cxf.ws.rm.v200702.AckRequestedType in project cxf by apache.
the class EncoderDecoder10Impl method decodeAckRequestedType.
public AckRequestedType decodeAckRequestedType(Element elem) throws JAXBException {
Unmarshaller unmarshaller = getContext().createUnmarshaller();
JAXBElement<org.apache.cxf.ws.rm.v200502.AckRequestedType> jaxbElement = unmarshaller.unmarshal(elem, org.apache.cxf.ws.rm.v200502.AckRequestedType.class);
return VersionTransformer.convert(jaxbElement.getValue());
}
use of org.apache.cxf.ws.rm.v200702.AckRequestedType in project cxf by apache.
the class EncoderDecoder11Impl method buildHeaders.
@Override
protected void buildHeaders(SequenceType seq, Collection<SequenceAcknowledgement> acks, Collection<AckRequestedType> reqs, boolean last, List<Header> headers) throws JAXBException {
if (null != seq) {
LOG.log(Level.FINE, "encoding sequence into RM header");
JAXBElement<SequenceType> element = RMUtils.getWSRMFactory().createSequence(seq);
headers.add(new SoapHeader(element.getName(), element, getDataBinding(), true));
}
if (null != acks) {
LOG.log(Level.FINE, "encoding sequence acknowledgement(s) into RM header");
for (SequenceAcknowledgement ack : acks) {
headers.add(new SoapHeader(new QName(getConstants().getWSRMNamespace(), RMConstants.SEQUENCE_ACK_NAME), ack, getDataBinding()));
}
}
if (null != reqs) {
LOG.log(Level.FINE, "encoding acknowledgement request(s) into RM header");
for (AckRequestedType req : reqs) {
headers.add(new SoapHeader(new QName(getConstants().getWSRMNamespace(), RMConstants.ACK_REQUESTED_NAME), RMUtils.getWSRMFactory().createAckRequested(req), getDataBinding()));
}
}
}
use of org.apache.cxf.ws.rm.v200702.AckRequestedType in project cxf by apache.
the class EncoderDecoder11Impl method decodeAckRequestedType.
public AckRequestedType decodeAckRequestedType(Element elem) throws JAXBException {
Unmarshaller unmarshaller = getContext().createUnmarshaller();
JAXBElement<AckRequestedType> jaxbElement = unmarshaller.unmarshal(elem, AckRequestedType.class);
return jaxbElement.getValue();
}
use of org.apache.cxf.ws.rm.v200702.AckRequestedType in project cxf by apache.
the class RMSoapInInterceptor method decodeHeaders.
public void decodeHeaders(SoapMessage message, List<Header> headers, RMProperties rmps) {
try {
Collection<SequenceAcknowledgement> acks = new ArrayList<>();
Collection<AckRequestedType> requested = new ArrayList<>();
String rmUri = null;
EncoderDecoder codec = null;
Iterator<Header> iter = headers.iterator();
while (iter.hasNext()) {
Object node = iter.next().getObject();
if (node instanceof Element) {
Element elem = (Element) node;
if (Node.ELEMENT_NODE != elem.getNodeType()) {
continue;
}
String ns = elem.getNamespaceURI();
if (rmUri == null && (RM10Constants.NAMESPACE_URI.equals(ns) || RM11Constants.NAMESPACE_URI.equals(ns))) {
LOG.log(Level.FINE, "set RM namespace {0}", ns);
rmUri = ns;
rmps.exposeAs(rmUri);
}
if (rmUri != null && rmUri.equals(ns)) {
if (codec == null) {
String wsauri = null;
AddressingProperties maps = ContextUtils.retrieveMAPs(message, false, false, false);
if (maps == null) {
RMConfiguration config = getManager(message).getEffectiveConfiguration(message);
wsauri = config.getAddressingNamespace();
} else {
wsauri = maps.getNamespaceURI();
}
ProtocolVariation protocol = ProtocolVariation.findVariant(rmUri, wsauri);
if (protocol == null) {
LOG.log(Level.WARNING, "NAMESPACE_ERROR_MSG", wsauri);
break;
}
codec = protocol.getCodec();
}
String localName = elem.getLocalName();
LOG.log(Level.FINE, "decoding RM header {0}", localName);
if (RMConstants.SEQUENCE_NAME.equals(localName)) {
rmps.setSequence(codec.decodeSequenceType(elem));
rmps.setCloseSequence(codec.decodeSequenceTypeCloseSequence(elem));
} else if (RMConstants.SEQUENCE_ACK_NAME.equals(localName)) {
acks.add(codec.decodeSequenceAcknowledgement(elem));
} else if (RMConstants.ACK_REQUESTED_NAME.equals(localName)) {
requested.add(codec.decodeAckRequestedType(elem));
}
}
}
}
if (!acks.isEmpty()) {
rmps.setAcks(acks);
}
if (!requested.isEmpty()) {
rmps.setAcksRequested(requested);
}
} catch (JAXBException ex) {
LOG.log(Level.WARNING, "SOAP_HEADER_DECODE_FAILURE_MSG", ex);
}
}
Aggregations