Class DefaultMessage

  • All Implemented Interfaces:
    org.apache.camel.CamelContextAware, org.apache.camel.Message, org.apache.camel.spi.DataTypeAware

    public class DefaultMessage
    extends MessageSupport
    The default implementation of Message

    This implementation uses a CaseInsensitiveMap storing the headers. This allows us to be able to lookup headers using case insensitive keys, making it easier for end users as they do not have to be worried about using exact keys. See more details at CaseInsensitiveMap. The implementation of the map can be configured by the HeadersMapFactory which can be set on the CamelContext. The default implementation uses the CaseInsensitiveMap.

    • Constructor Detail

      • DefaultMessage

        public DefaultMessage​(org.apache.camel.Exchange exchange)
      • DefaultMessage

        public DefaultMessage​(org.apache.camel.CamelContext camelContext)
    • Method Detail

      • reset

        public void reset()
        Specified by:
        reset in interface org.apache.camel.Message
        Overrides:
        reset in class MessageSupport
      • getHeader

        public <T> T getHeader​(String name,
                               Class<T> type)
      • getHeader

        public <T> T getHeader​(String name,
                               Object defaultValue,
                               Class<T> type)
      • setHeader

        public void setHeader​(String name,
                              Object value)
      • removeHeader

        public Object removeHeader​(String name)
      • removeHeaders

        public boolean removeHeaders​(String pattern)
      • removeHeaders

        public boolean removeHeaders​(String pattern,
                                     String... excludePatterns)
      • hasHeaders

        public boolean hasHeaders()
      • createHeaders

        protected Map<String,​Object> createHeaders()
        A factory method to lazily create the headers to make it easy to create efficient Message implementations which only construct and populate the Map on demand
        Returns:
        return a newly constructed Map possibly containing headers from the underlying inbound transport
      • populateInitialHeaders

        protected void populateInitialHeaders​(Map<String,​Object> map)
        A strategy method populate the initial set of headers on an inbound message from an underlying binding
        Parameters:
        map - is the empty header map to populate
      • isTransactedRedelivered

        protected Boolean isTransactedRedelivered()
        A strategy for component specific messages to determine whether the message is redelivered or not.

        Important: It is not always possible to determine if the transacted is a redelivery or not, and therefore null is returned. Such an example would be a JDBC message. However JMS brokers provides details if a transacted message is redelivered.

        Returns:
        true if redelivered, false if not, null if not able to determine
      • hasPopulatedHeaders

        protected boolean hasPopulatedHeaders()
        Returns true if the headers have been mutated in some way