Package org.apache.camel.support
Class MessageHelper
java.lang.Object
org.apache.camel.support.MessageHelper
Some helper methods when working with
Message
.-
Method Summary
Modifier and TypeMethodDescriptionstatic void
copyBody
(org.apache.camel.Message source, org.apache.camel.Message target) Copies the body of the source message to the body of the target message while preserving the data type if the messages are both of typeDataTypeAware
.static void
copyHeaders
(org.apache.camel.Message source, org.apache.camel.Message target, boolean override) Copies the headers from the source to the target message.static void
copyHeaders
(org.apache.camel.Message source, org.apache.camel.Message target, org.apache.camel.spi.HeaderFilterStrategy strategy, boolean override) Copies the headers from the source to the target message.static String
dumpAsXml
(org.apache.camel.Message message) Dumps the message as a generic XML structure.static String
dumpAsXml
(org.apache.camel.Message message, boolean includeBody) Dumps the message as a generic XML structure.static String
dumpAsXml
(org.apache.camel.Message message, boolean includeBody, int indent) Dumps the message as a generic XML structure.static String
dumpAsXml
(org.apache.camel.Message message, boolean includeBody, int indent, boolean allowStreams, boolean allowFiles, int maxChars) Dumps the message as a generic XML structure.static String
dumpMessageHistoryStacktrace
(org.apache.camel.Exchange exchange, org.apache.camel.spi.ExchangeFormatter exchangeFormatter, boolean logStackTrace) Dumps theMessageHistory
from theExchange
in a human readable format.static String
extractBodyAsString
(org.apache.camel.Message message) Extracts the given body and returns it as a String, that can be used for logging etc.static String
extractBodyForLogging
(org.apache.camel.Message message) Extracts the body for logging purpose.static String
extractBodyForLogging
(org.apache.camel.Message message, String prepend) Extracts the body for logging purpose.static String
extractBodyForLogging
(org.apache.camel.Message message, String prepend, boolean allowStreams, boolean allowFiles) Extracts the body for logging purpose.static String
extractBodyForLogging
(org.apache.camel.Message message, String prepend, boolean allowCachedStreams, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the body for logging purpose.static String
extractBodyForLogging
(org.apache.camel.Message message, String prepend, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the body for logging purpose.static String
extractValueForLogging
(Object value, org.apache.camel.Message message) Extracts the value for logging purpose.static String
extractValueForLogging
(Object obj, org.apache.camel.Message message, boolean allowCachedStreams, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the value for logging purpose.static String
extractValueForLogging
(Object obj, org.apache.camel.Message message, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the value for logging purpose.static String
getBodyTypeName
(org.apache.camel.Message message) Gets the given body class type name as a String.static String
getContentEncoding
(org.apache.camel.Message message) Returns the MIME content encoding on the message or null if none definedstatic String
getContentType
(org.apache.camel.Message message) Returns the MIME content type on the message or null if none definedstatic void
resetStreamCache
(org.apache.camel.Message message) If the message body contains aStreamCache
instance, reset the cache to enable reading from it again.
-
Method Details
-
extractBodyAsString
Extracts the given body and returns it as a String, that can be used for logging etc. Will handle stream based bodies wrapped in StreamCache.- Parameters:
message
- the message with the body- Returns:
- the body as String, can return null if no body
-
getBodyTypeName
Gets the given body class type name as a String. Will skip java.lang. for the build in Java types.- Parameters:
message
- the message with the body- Returns:
- the body type name as String, can return null if no body
-
resetStreamCache
public static void resetStreamCache(org.apache.camel.Message message) If the message body contains aStreamCache
instance, reset the cache to enable reading from it again.- Parameters:
message
- the message for which to reset the body
-
getContentType
Returns the MIME content type on the message or null if none defined -
getContentEncoding
Returns the MIME content encoding on the message or null if none defined -
extractBodyForLogging
Extracts the body for logging purpose. Will clip the body if its too big for logging. Will prepend the message with Message:- Parameters:
message
- the message- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_STREAMS
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
extractValueForLogging
Extracts the value for logging purpose. Will clip the value if its too big for logging.- Parameters:
value
- the valuemessage
- the message- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_STREAMS
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
extractBodyForLogging
Extracts the body for logging purpose. Will clip the body if its too big for logging.- Parameters:
message
- the messageprepend
- a message to prepend- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_STREAMS
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
extractBodyForLogging
public static String extractBodyForLogging(org.apache.camel.Message message, String prepend, boolean allowStreams, boolean allowFiles) Extracts the body for logging purpose. Will clip the body if its too big for logging.- Parameters:
message
- the messageprepend
- a message to prependallowStreams
- whether or not streams is allowedallowFiles
- whether or not files is allowed (currently not in use)- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_STREAMS
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
extractBodyForLogging
public static String extractBodyForLogging(org.apache.camel.Message message, String prepend, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the body for logging purpose. Will clip the body if its too big for logging.- Parameters:
message
- the messageprepend
- a message to prepend (optional)allowStreams
- whether or not streams is allowedallowFiles
- whether or not files is allowed (currently not in use)maxChars
- limit to maximum number of chars. Use 0 for not limit, and -1 for turning logging message body off.- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
extractBodyForLogging
public static String extractBodyForLogging(org.apache.camel.Message message, String prepend, boolean allowCachedStreams, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the body for logging purpose. Will clip the body if its too big for logging.- Parameters:
message
- the messageprepend
- a message to prepend (optional)allowCachedStreams
- whether or not cached streams is allowedallowStreams
- whether or not streams is allowedallowFiles
- whether or not files is allowed (currently not in use)maxChars
- limit to maximum number of chars. Use 0 for not limit, and -1 for turning logging message body off.- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
extractValueForLogging
public static String extractValueForLogging(Object obj, org.apache.camel.Message message, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the value for logging purpose. Will clip the value if its too big for logging.- Parameters:
obj
- the valuemessage
- the messageallowStreams
- whether or not streams is allowedallowFiles
- whether or not files is allowed (currently not in use)maxChars
- limit to maximum number of chars. Use 0 for not limit, and -1 for turning logging message body off.- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
extractValueForLogging
public static String extractValueForLogging(Object obj, org.apache.camel.Message message, boolean allowCachedStreams, boolean allowStreams, boolean allowFiles, int maxChars) Extracts the value for logging purpose. Will clip the value if its too big for logging.- Parameters:
obj
- the valuemessage
- the messageallowCachedStreams
- whether or not cached streams is allowedallowStreams
- whether or not streams is allowedallowFiles
- whether or not files is allowed (currently not in use)maxChars
- limit to maximum number of chars. Use 0 for not limit, and -1 for turning logging message body off.- Returns:
- the logging message
- See Also:
-
Exchange.LOG_DEBUG_BODY_MAX_CHARS
-
dumpAsXml
Dumps the message as a generic XML structure.- Parameters:
message
- the message- Returns:
- the XML
-
dumpAsXml
Dumps the message as a generic XML structure.- Parameters:
message
- the messageincludeBody
- whether or not to include the message body- Returns:
- the XML
-
dumpAsXml
Dumps the message as a generic XML structure.- Parameters:
message
- the messageincludeBody
- whether or not to include the message bodyindent
- number of spaces to indent- Returns:
- the XML
-
dumpAsXml
public static String dumpAsXml(org.apache.camel.Message message, boolean includeBody, int indent, boolean allowStreams, boolean allowFiles, int maxChars) Dumps the message as a generic XML structure.- Parameters:
message
- the messageincludeBody
- whether or not to include the message bodyindent
- number of spaces to indentallowStreams
- whether to include message body if they are stream basedallowFiles
- whether to include message body if they are file basedmaxChars
- clip body after maximum chars (to avoid very big messages). Use 0 or negative value to not limit at all.- Returns:
- the XML
-
copyBody
public static void copyBody(org.apache.camel.Message source, org.apache.camel.Message target) Copies the body of the source message to the body of the target message while preserving the data type if the messages are both of typeDataTypeAware
. .- Parameters:
source
- the source message from which the body must be extracted.target
- the target message that will receive the body.
-
copyHeaders
public static void copyHeaders(org.apache.camel.Message source, org.apache.camel.Message target, boolean override) Copies the headers from the source to the target message.- Parameters:
source
- the source messagetarget
- the target messageoverride
- whether to override existing headers
-
copyHeaders
public static void copyHeaders(org.apache.camel.Message source, org.apache.camel.Message target, org.apache.camel.spi.HeaderFilterStrategy strategy, boolean override) Copies the headers from the source to the target message.- Parameters:
source
- the source messagetarget
- the target messagestrategy
- the header filter strategy which could help us to filter the protocol message headersoverride
- whether to override existing headers
-
dumpMessageHistoryStacktrace
public static String dumpMessageHistoryStacktrace(org.apache.camel.Exchange exchange, org.apache.camel.spi.ExchangeFormatter exchangeFormatter, boolean logStackTrace) Dumps theMessageHistory
from theExchange
in a human readable format.- Parameters:
exchange
- the exchangeexchangeFormatter
- if provided then information about the exchange is included in the dumplogStackTrace
- whether to include a header for the stacktrace, to be added (not included in this dump).- Returns:
- a human readable message history as a table
-