Class AmqpSupport

java.lang.Object
org.apache.activemq.artemis.protocol.amqp.proton.AmqpSupport

public class AmqpSupport extends Object
Set of useful methods and definitions used in the AMQP protocol handling
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final boolean
     
    static final Object
     
    static final int
     
    static final int
     
    static final boolean
     
    static final boolean
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
    A capability added to the sender or receiver links that indicate that the link either wants support for or offers support for tunneling Core messages as custom formatted AMQP messages.
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.UnsignedLong
     
    static final Object[]
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final int
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.UnsignedLong
     
    static final Object[]
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
    A priority value added to a remote receiver link attach that indicates the desired priority for the receiver created for the link.
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final org.apache.qpid.proton.amqp.Symbol
     
    static final String
    Property value that can be applied to federation and bridge configurations that controls if the various links will request that the opposing peers link tunnel core messages inside an AMQP message as a binary blob to be unwrapped on the other side.
    static final org.apache.qpid.proton.amqp.Symbol
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    contains(org.apache.qpid.proton.amqp.Symbol[] symbols, org.apache.qpid.proton.amqp.Symbol key)
    Search for a given Symbol in a given array of Symbol object.
    createQueueName(boolean useCoreSubscriptionNaming, String clientId, String senderId, boolean shared, boolean global, boolean isVolatile)
    Given the input values construct a Queue name for use in messaging handlers.
    static Map.Entry<org.apache.qpid.proton.amqp.Symbol, org.apache.qpid.proton.amqp.DescribedType>
    findFilter(Map<org.apache.qpid.proton.amqp.Symbol, Object> filters, Object[] filterIds)
    Search for a particular filter using a set of known identification values in the Map of filters.
    static Number
    getReceiverPriority(Map<org.apache.qpid.proton.amqp.Symbol, Object> remoteProperties)
    Check the set of remote properties sent on link attach for any values that are treated as indicating priority and return the match if any.
    static Number
    getReceiverPriority(Map<org.apache.qpid.proton.amqp.Symbol, Object> remoteProperties, Number defaultPriority)
    Check the set of remote properties sent on link attach for any values that are treated as indicating priority and return the match if any.
    static boolean
    verifyCapabilities(org.apache.qpid.proton.amqp.Symbol[] offered, org.apache.qpid.proton.amqp.Symbol... desired)
    Verifies that the given set of capabilities contains each of the desired capabilities.
    static boolean
    verifyDesiredCapability(org.apache.qpid.proton.engine.Link link, org.apache.qpid.proton.amqp.Symbol desiredCapability)
    Verifies that the given desired capability is present in the remote link details.
    static boolean
    verifyOfferedCapabilities(org.apache.qpid.proton.engine.Link link)
    Verifies that the desired capabilities that were sent to the remote were indeed offered in return.
    static boolean
    verifyOfferedCapabilities(org.apache.qpid.proton.engine.Link link, org.apache.qpid.proton.amqp.Symbol... capabilities)
    Verifies that the given set of desired capabilities (which should be the full set of desired capabilities configured on the link or a subset of those values) are indeed offered in return.
    static boolean
    verifySourceCapability(org.apache.qpid.proton.amqp.messaging.Source source, org.apache.qpid.proton.amqp.Symbol capability)
    Verifies that the desired capability is present in the Source capabilities.
    static boolean
    verifyTargetCapability(org.apache.qpid.proton.amqp.messaging.Target target, org.apache.qpid.proton.amqp.Symbol capability)
    Verifies that the desired capability is present in the Source capabilities.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • AMQP_CREDITS_DEFAULT

      public static final int AMQP_CREDITS_DEFAULT
      See Also:
    • AMQP_LOW_CREDITS_DEFAULT

      public static final int AMQP_LOW_CREDITS_DEFAULT
      See Also:
    • AMQP_TREAT_REJECT_AS_UNMODIFIED_DELIVERY_FAILURE

      public static final boolean AMQP_TREAT_REJECT_AS_UNMODIFIED_DELIVERY_FAILURE
      See Also:
    • AMQP_USE_MODIFIED_FOR_TRANSIENT_DELIVERY_ERRORS

      public static final boolean AMQP_USE_MODIFIED_FOR_TRANSIENT_DELIVERY_ERRORS
      See Also:
    • AMQP_DRAIN_ON_TRANSIENT_DELIVERY_ERRORS

      public static final boolean AMQP_DRAIN_ON_TRANSIENT_DELIVERY_ERRORS
      See Also:
    • JMS_SELECTOR_KEY

      public static final org.apache.qpid.proton.amqp.Symbol JMS_SELECTOR_KEY
    • JMS_SELECTOR_CODE

      public static final org.apache.qpid.proton.amqp.UnsignedLong JMS_SELECTOR_CODE
    • JMS_SELECTOR_NAME

      public static final org.apache.qpid.proton.amqp.Symbol JMS_SELECTOR_NAME
    • JMS_SELECTOR_FILTER_IDS

      public static final Object[] JMS_SELECTOR_FILTER_IDS
    • NO_LOCAL_CODE

      public static final org.apache.qpid.proton.amqp.UnsignedLong NO_LOCAL_CODE
    • NO_LOCAL_NAME

      public static final org.apache.qpid.proton.amqp.Symbol NO_LOCAL_NAME
    • NO_LOCAL_FILTER_IDS

      public static final Object[] NO_LOCAL_FILTER_IDS
    • TEMP_QUEUE_CAPABILITY

      public static final org.apache.qpid.proton.amqp.Symbol TEMP_QUEUE_CAPABILITY
    • TEMP_TOPIC_CAPABILITY

      public static final org.apache.qpid.proton.amqp.Symbol TEMP_TOPIC_CAPABILITY
    • QUEUE_CAPABILITY

      public static final org.apache.qpid.proton.amqp.Symbol QUEUE_CAPABILITY
    • TOPIC_CAPABILITY

      public static final org.apache.qpid.proton.amqp.Symbol TOPIC_CAPABILITY
    • INVALID_FIELD

      public static final org.apache.qpid.proton.amqp.Symbol INVALID_FIELD
    • CONTAINER_ID

      public static final org.apache.qpid.proton.amqp.Symbol CONTAINER_ID
    • ANONYMOUS_RELAY

      public static final org.apache.qpid.proton.amqp.Symbol ANONYMOUS_RELAY
    • DELAYED_DELIVERY

      public static final org.apache.qpid.proton.amqp.Symbol DELAYED_DELIVERY
    • QUEUE_PREFIX

      public static final org.apache.qpid.proton.amqp.Symbol QUEUE_PREFIX
    • TOPIC_PREFIX

      public static final org.apache.qpid.proton.amqp.Symbol TOPIC_PREFIX
    • SHARED

      public static final org.apache.qpid.proton.amqp.Symbol SHARED
    • GLOBAL

      public static final org.apache.qpid.proton.amqp.Symbol GLOBAL
    • CONNECTION_OPEN_FAILED

      public static final org.apache.qpid.proton.amqp.Symbol CONNECTION_OPEN_FAILED
    • PRODUCT

      public static final org.apache.qpid.proton.amqp.Symbol PRODUCT
    • VERSION

      public static final org.apache.qpid.proton.amqp.Symbol VERSION
    • PLATFORM

      public static final org.apache.qpid.proton.amqp.Symbol PLATFORM
    • RESOURCE_DELETED

      public static final org.apache.qpid.proton.amqp.Symbol RESOURCE_DELETED
    • CONNECTION_FORCED

      public static final org.apache.qpid.proton.amqp.Symbol CONNECTION_FORCED
    • DETACH_FORCED

      public static final org.apache.qpid.proton.amqp.Symbol DETACH_FORCED
    • NOT_FOUND

      public static final org.apache.qpid.proton.amqp.Symbol NOT_FOUND
    • SHARED_SUBS

      public static final org.apache.qpid.proton.amqp.Symbol SHARED_SUBS
    • NETWORK_HOST

      public static final org.apache.qpid.proton.amqp.Symbol NETWORK_HOST
    • PORT

      public static final org.apache.qpid.proton.amqp.Symbol PORT
    • MAX_FRAME_SIZE_DEFAULT

      public static final int MAX_FRAME_SIZE_DEFAULT
      See Also:
    • COPY

      public static final org.apache.qpid.proton.amqp.Symbol COPY
    • LIFETIME_POLICY

      public static final org.apache.qpid.proton.amqp.Symbol LIFETIME_POLICY
    • SOLE_CONNECTION_CAPABILITY

      public static final org.apache.qpid.proton.amqp.Symbol SOLE_CONNECTION_CAPABILITY
    • CORE_MESSAGE_TUNNELING_SUPPORT

      public static final org.apache.qpid.proton.amqp.Symbol CORE_MESSAGE_TUNNELING_SUPPORT
      A capability added to the sender or receiver links that indicate that the link either wants support for or offers support for tunneling Core messages as custom formatted AMQP messages.
    • TUNNEL_CORE_MESSAGES

      public static final String TUNNEL_CORE_MESSAGES
      Property value that can be applied to federation and bridge configurations that controls if the various links will request that the opposing peers link tunnel core messages inside an AMQP message as a binary blob to be unwrapped on the other side. The sending peer would still need to support this feature for message tunneling to occur.
      See Also:
    • RECEIVER_PRIORITY

      public static final org.apache.qpid.proton.amqp.Symbol RECEIVER_PRIORITY
      A priority value added to a remote receiver link attach that indicates the desired priority for the receiver created for the link.
  • Constructor Details

    • AmqpSupport

      public AmqpSupport()
  • Method Details

    • getReceiverPriority

      public static Number getReceiverPriority(Map<org.apache.qpid.proton.amqp.Symbol, Object> remoteProperties)
      Check the set of remote properties sent on link attach for any values that are treated as indicating priority and return the match if any. If no priority is indicated in the link properties this method returns null.
      Parameters:
      remoteProperties - The Map of remote properties sent on the remote attach.
      Returns:
      a Number indicating the desired link priority or null if none
    • getReceiverPriority

      public static Number getReceiverPriority(Map<org.apache.qpid.proton.amqp.Symbol, Object> remoteProperties, Number defaultPriority)
      Check the set of remote properties sent on link attach for any values that are treated as indicating priority and return the match if any. If no priority is indicated in the link properties this method returns null.
      Parameters:
      remoteProperties - The Map of remote properties sent on the remote attach.
      defaultPriority - The default value that should be returned if no remote priority indicated.
      Returns:
      a Number indicating the desired link priority or null if none
    • contains

      public static boolean contains(org.apache.qpid.proton.amqp.Symbol[] symbols, org.apache.qpid.proton.amqp.Symbol key)
      Search for a given Symbol in a given array of Symbol object.
      Parameters:
      symbols - the set of Symbols to search.
      key - the value to try and find in the Symbol array.
      Returns:
      true if the key is found in the given Symbol array
    • findFilter

      public static Map.Entry<org.apache.qpid.proton.amqp.Symbol, org.apache.qpid.proton.amqp.DescribedType> findFilter(Map<org.apache.qpid.proton.amqp.Symbol, Object> filters, Object[] filterIds)
      Search for a particular filter using a set of known identification values in the Map of filters.
      Parameters:
      filters - The filters map that should be searched.
      filterIds - The aliases for the target filter to be located.
      Returns:
      the filter if found in the mapping or null if not found
    • verifyOfferedCapabilities

      public static boolean verifyOfferedCapabilities(org.apache.qpid.proton.engine.Link link)
      Verifies that the desired capabilities that were sent to the remote were indeed offered in return. If the remote has not offered a capability that was desired then the initiating resource should determine if the offered set is still acceptable or it should close the link and report the reason.

      The remote could have offered more capabilities than the requested desired capabilities, this method does not validate that or consider that a failure.

      Parameters:
      link - The link in question (Sender or Receiver).
      Returns:
      true if the remote offered all of the capabilities that were desired
    • verifyOfferedCapabilities

      public static boolean verifyOfferedCapabilities(org.apache.qpid.proton.engine.Link link, org.apache.qpid.proton.amqp.Symbol... capabilities)
      Verifies that the given set of desired capabilities (which should be the full set of desired capabilities configured on the link or a subset of those values) are indeed offered in return. If the remote has not offered a capability that was desired then the initiating resource should determine if the offered set is still acceptable or it should close the link and report the reason.

      The remote could have offered more capabilities than the requested desired capabilities, this method does not validate that or consider that a failure.

      Parameters:
      link - The link in question (Sender or Receiver).
      capabilities - The capabilities that are required being checked for.
      Returns:
      true if the remote offered all of the capabilities that were desired
    • verifyDesiredCapability

      public static boolean verifyDesiredCapability(org.apache.qpid.proton.engine.Link link, org.apache.qpid.proton.amqp.Symbol desiredCapability)
      Verifies that the given desired capability is present in the remote link details.

      The remote could have desired more capabilities than the one given, this method does not validate that or consider that a failure.

      Parameters:
      link - The link in question (Sender or Receiver).
      desiredCapability - The non-null capability that is being checked as being desired.
      Returns:
      true if the remote desired all of the capabilities that were given
    • verifySourceCapability

      public static boolean verifySourceCapability(org.apache.qpid.proton.amqp.messaging.Source source, org.apache.qpid.proton.amqp.Symbol capability)
      Verifies that the desired capability is present in the Source capabilities.
      Parameters:
      source - The Source instance whose capabilities are being searched.
      capability - The non-null capability that is being checked as being desired.
      Returns:
      true if the remote desired all of the capabilities that were given
    • verifyTargetCapability

      public static boolean verifyTargetCapability(org.apache.qpid.proton.amqp.messaging.Target target, org.apache.qpid.proton.amqp.Symbol capability)
      Verifies that the desired capability is present in the Source capabilities.
      Parameters:
      target - The Target instance whose capabilities are being searched.
      capability - The non-null capability that is being checked as being desired.
      Returns:
      true if the remote desired all of the capabilities that were given
    • verifyCapabilities

      public static boolean verifyCapabilities(org.apache.qpid.proton.amqp.Symbol[] offered, org.apache.qpid.proton.amqp.Symbol... desired)
      Verifies that the given set of capabilities contains each of the desired capabilities.

      The remote could have offered more capabilities than the requested desired capabilities, this method does not validate that or consider that a failure.

      Parameters:
      offered - The capabilities that were offered from the remote or were set by the local side
      desired - The desired capabilities to search for in the offered set.
      Returns:
      true if the desired capabilities were found in the offered set
    • createQueueName

      public static SimpleString createQueueName(boolean useCoreSubscriptionNaming, String clientId, String senderId, boolean shared, boolean global, boolean isVolatile)
      Given the input values construct a Queue name for use in messaging handlers.
      Parameters:
      useCoreSubscriptionNaming - Should the name match core client subscription naming.
      clientId - The client ID of the remote peer.
      senderId - The ID assigned to the sender asking for a generated Queue name.
      shared - Is this Queue used for shared subscriptions
      global - Should the shared subscription Queue indicate globally shared.
      isVolatile - Is the Queue meant to be volatile or not.
      Returns:
      a queue name based on the provided inputs