Class AbstractHeaderGeneratingMessageHandler

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, MessageHandler
Direct Known Subclasses:
AddActionHandler, AddMessageIDHandler, AddRelatesToHandler, AddTimestampHandler

public abstract class AbstractHeaderGeneratingMessageHandler extends AbstractMessageHandler
Abstract base class for message handlers that generate SOAP headers.
  • Field Details

    • mustUnderstand

      private boolean mustUnderstand
      The statically configured value for mustUnderstand.
    • mustUnderstandStrategy

      @Nullable private Predicate<MessageContext> mustUnderstandStrategy
      Predicate strategy for evaluating mustUnderstand from the message context.
    • effectiveMustUnderstand

      private boolean effectiveMustUnderstand
      The effective mustUnderstand value to use.
    • targetNode

      @Nullable private String targetNode
      The statically configured value for target node (SOAP 1.1 actor or SOAP 1.2 role).
    • targetNodeStrategy

      @Nullable private Function<MessageContext,String> targetNodeStrategy
      Function strategy for resolving target node from the message context.
    • effectiveTargetNode

      private String effectiveTargetNode
      The effective target node value to use.
  • Constructor Details

    • AbstractHeaderGeneratingMessageHandler

      public AbstractHeaderGeneratingMessageHandler()
  • Method Details

    • setMustUnderstand

      public void setMustUnderstand(boolean flag)
      Set the statically configured value for mustUnderstand.
      Parameters:
      flag - true if header must be understood, false if not
    • setMustUnderstandStrategy

      public void setMustUnderstandStrategy(@Nullable Predicate<MessageContext> strategy)
      Set the predicate strategy for evaluating mustUnderstand from the message context.
      Parameters:
      strategy - the predicate strategy
    • isEffectiveMustUnderstand

      protected boolean isEffectiveMustUnderstand()
      Get the effective value for mustUnderstand.
      Returns:
      the effective value for mustUnderstand.
    • setTargetNode

      public void setTargetNode(@Nullable String node)
      Set the statically configured value for target node (SOAP 1.1 actor or SOAP 1.2 role).
      Parameters:
      node - the target node, may be null
    • setTargetNodeStrategy

      public void setTargetNodeStrategy(@Nullable Function<MessageContext,String> strategy)
      Set the predicate strategy for evaluating mustUnderstand from the message context.
      Parameters:
      strategy - the predicate strategy
    • getEffectiveTargetNode

      protected String getEffectiveTargetNode()
      Get the effective value for target node (SOAP 1.1 actor or SOAP 1.2 role).
      Returns:
      the effective value for target node
    • doPreInvoke

      protected boolean doPreInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
      Called prior to execution, handlers may override this method to perform pre-processing for a request.

      The default impl applies the Predicate set via the AbstractMessageHandler.setActivationCondition(Predicate).

      If false is returned, execution will not proceed.

      Subclasses which override this method should generally invoke the super version of this method first, so that the activation condition will be applied up front, and immediately return false if the super version returns false. This avoids unnecessary execution of the remaining pre-invocation code if the handler ultimately will not execute.

      Overrides:
      doPreInvoke in class AbstractMessageHandler
      Parameters:
      messageContext - the message context on which to invoke the handler
      Returns:
      true iff execution should proceed
      Throws:
      MessageHandlerException - if there is a problem executing the handler pre-routine
    • decorateGeneratedHeader

      protected void decorateGeneratedHeader(@Nonnull MessageContext messageContext, @Nonnull XMLObject header)
      Decorate the header based on configured and/or resolved values.
      Parameters:
      messageContext - the current message context
      header - the header to decorate