Class MAPCodec

All Implemented Interfaces:
SoapInterceptor, Interceptor<SoapMessage>, PhaseInterceptor<SoapMessage>

public class MAPCodec extends AbstractSoapInterceptor
SOAP interceptor responsible for {en|de}coding the Message Addressing Properties for {outgo|incom}ing messages.
  • Field Details

    • INSTANCE

      public static final MAPCodec INSTANCE
    • uncorrelatedExchanges

      protected final Map<String,Exchange> uncorrelatedExchanges
      REVISIT: map usage that the *same* interceptor instance is used in all chains.
  • Constructor Details

    • MAPCodec

      public MAPCodec()
      Constructor.
  • Method Details

    • getInstance

      public static MAPCodec getInstance(Bus bus)
    • getUncorrelatedExchanges

      public Map<String,Exchange> getUncorrelatedExchanges()
    • getUnderstoodHeaders

      public Set<QName> getUnderstoodHeaders()
      Specified by:
      getUnderstoodHeaders in interface SoapInterceptor
      Overrides:
      getUnderstoodHeaders in class AbstractSoapInterceptor
      Returns:
      the set of SOAP headers understood by this handler
    • handleMessage

      public void handleMessage(SoapMessage message)
      Invoked for normal processing of inbound and outbound messages.
      Parameters:
      message - the messsage
    • handleFault

      public void handleFault(SoapMessage message)
      Invoked when unwinding normal interceptor chain when a fault occurred.
      Specified by:
      handleFault in interface Interceptor<SoapMessage>
      Overrides:
      handleFault in class AbstractPhaseInterceptor<SoapMessage>
      Parameters:
      message - the messsage message
    • unmarshalMAPs

      public AddressingProperties unmarshalMAPs(SoapMessage message)
      Decode the MAPs from protocol-specific headers.
      Parameters:
      message - the SOAP message
      Returns:
      the decoded MAPs
      Throws:
      SOAPFaultException - if decoded MAPs are invalid
    • decodeAsNative

      public <T> T decodeAsNative(String encodedAs, Class<T> clz, Element headerElement, jakarta.xml.bind.Unmarshaller unmarshaller) throws jakarta.xml.bind.JAXBException
      Decodes a MAP from a exposed version.
      Parameters:
      encodedAs - specifies the encoded version
      clz - the class
      headerElement - the SOAP header element
      unmarshaller - the JAXB unmarshaller to use
      Returns:
      the decoded value
      Throws:
      jakarta.xml.bind.JAXBException
    • encodeMAP

      protected <T> void encodeMAP(SoapMessage message, T value, QName qname, Class<T> clz, jakarta.xml.bind.JAXBContext ctx, boolean mustUnderstand) throws jakarta.xml.bind.JAXBException
      Encodes an MAP as a SOAP header.
      Parameters:
      message - the message to store the headers on
      value - the value to encode
      qname - the QName for the header
      clz - the class
      ctx - the JAXBContent
      mustUnderstand -
      Throws:
      jakarta.xml.bind.JAXBException
    • decodeMAP

      protected <T> T decodeMAP(Class<T> clz, Element headerElement, jakarta.xml.bind.Unmarshaller unmarshaller) throws jakarta.xml.bind.JAXBException
      Decodes a MAP from a SOAP header.
      Parameters:
      clz - the class
      headerElement - the SOAP header element
      unmarshaller - the JAXB unmarshaller to use
      Returns:
      the decoded value
      Throws:
      jakarta.xml.bind.JAXBException
    • getHeaderFactory

      protected MAPCodec.HeaderFactory getHeaderFactory()
    • setHeaderFactory

      protected void setHeaderFactory(MAPCodec.HeaderFactory factory)