public class JmsBinding extends Object
Exchange
and Message
to and from a JMS Message
Constructor and Description |
---|
JmsBinding(boolean mapJmsMessage,
boolean allowNullBody,
org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy,
JmsKeyFormatStrategy jmsJmsKeyFormatStrategy,
MessageCreatedStrategy messageCreatedStrategy) |
Modifier and Type | Method and Description |
---|---|
void |
appendJmsProperties(javax.jms.Message jmsMessage,
org.apache.camel.Exchange exchange,
Map<String,Object> headers)
Appends the JMS headers from the Camel
Message |
void |
appendJmsProperty(javax.jms.Message jmsMessage,
org.apache.camel.Exchange exchange,
String headerName,
Object headerValue) |
protected byte[] |
createByteArrayFromBytesMessage(javax.jms.BytesMessage message) |
protected javax.jms.Message |
createJmsMessage(Exception cause,
javax.jms.Session session) |
protected javax.jms.Message |
createJmsMessage(org.apache.camel.Exchange exchange,
Object body,
Map<String,Object> headers,
javax.jms.Session session,
org.apache.camel.CamelContext context) |
protected javax.jms.Message |
createJmsMessageForType(org.apache.camel.Exchange exchange,
Object body,
Map<String,Object> headers,
javax.jms.Session session,
org.apache.camel.CamelContext context,
JmsMessageType type)
Create the
Message |
Map<String,Object> |
createMapFromMapMessage(javax.jms.MapMessage message)
Extracts a
Map from a MapMessage |
Object |
extractBodyFromJms(org.apache.camel.Exchange exchange,
javax.jms.Message message)
Extracts the body from the JMS message
|
Map<String,Object> |
extractHeadersFromJms(javax.jms.Message jmsMessage,
org.apache.camel.Exchange exchange) |
protected JmsMessageType |
getJMSMessageTypeForBody(org.apache.camel.Exchange exchange,
Object body,
Map<String,Object> headers,
javax.jms.Session session,
org.apache.camel.CamelContext context)
Return the
JmsMessageType |
Object |
getObjectProperty(javax.jms.Message jmsMessage,
String name) |
protected Object |
getValidJMSHeaderValue(String headerName,
Object headerValue)
Strategy to test if the given header is valid according to the JMS spec to be set as a property
on the JMS message.
|
protected boolean |
isStandardJMSHeader(String headerName)
Is the given header a standard JMS header
|
javax.jms.Message |
makeJmsMessage(org.apache.camel.Exchange exchange,
Object body,
Map headers,
javax.jms.Session session,
Exception cause)
Creates a JMS message from the Camel exchange and message
|
javax.jms.Message |
makeJmsMessage(org.apache.camel.Exchange exchange,
javax.jms.Session session)
Creates a JMS message from the Camel exchange and message
|
protected void |
populateMapMessage(javax.jms.MapMessage message,
Map<?,?> map,
org.apache.camel.CamelContext context)
Populates a
MapMessage from a Map instance. |
protected boolean |
shouldOutputHeader(String headerName,
Object headerValue,
org.apache.camel.Exchange exchange)
Strategy to allow filtering of headers which are put on the JMS message
Note: Currently only supports sending java identifiers as keys
|
public JmsBinding(boolean mapJmsMessage, boolean allowNullBody, org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy, JmsKeyFormatStrategy jmsJmsKeyFormatStrategy, MessageCreatedStrategy messageCreatedStrategy)
public Object extractBodyFromJms(org.apache.camel.Exchange exchange, javax.jms.Message message)
exchange
- the exchangemessage
- the message to extract its bodypublic Map<String,Object> extractHeadersFromJms(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange)
public Object getObjectProperty(javax.jms.Message jmsMessage, String name) throws javax.jms.JMSException
javax.jms.JMSException
protected byte[] createByteArrayFromBytesMessage(javax.jms.BytesMessage message) throws javax.jms.JMSException
javax.jms.JMSException
public javax.jms.Message makeJmsMessage(org.apache.camel.Exchange exchange, javax.jms.Session session) throws javax.jms.JMSException
exchange
- the current exchangesession
- the JMS session used to create the messagejavax.jms.JMSException
- if the message could not be createdpublic javax.jms.Message makeJmsMessage(org.apache.camel.Exchange exchange, Object body, Map headers, javax.jms.Session session, Exception cause) throws javax.jms.JMSException
exchange
- the current exchangebody
- the message bodyheaders
- the message headerssession
- the JMS session used to create the messagecause
- optional exception occurred that should be sent as reply instead of a regular bodyjavax.jms.JMSException
- if the message could not be createdpublic void appendJmsProperties(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange, Map<String,Object> headers) throws javax.jms.JMSException
Message
javax.jms.JMSException
public void appendJmsProperty(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange, String headerName, Object headerValue) throws javax.jms.JMSException
javax.jms.JMSException
protected boolean isStandardJMSHeader(String headerName)
headerName
- the header nameprotected Object getValidJMSHeaderValue(String headerName, Object headerValue)
headerName
- the header nameheaderValue
- the header valueprotected javax.jms.Message createJmsMessage(Exception cause, javax.jms.Session session) throws javax.jms.JMSException
javax.jms.JMSException
protected javax.jms.Message createJmsMessage(org.apache.camel.Exchange exchange, Object body, Map<String,Object> headers, javax.jms.Session session, org.apache.camel.CamelContext context) throws javax.jms.JMSException
javax.jms.JMSException
protected JmsMessageType getJMSMessageTypeForBody(org.apache.camel.Exchange exchange, Object body, Map<String,Object> headers, javax.jms.Session session, org.apache.camel.CamelContext context)
JmsMessageType
protected javax.jms.Message createJmsMessageForType(org.apache.camel.Exchange exchange, Object body, Map<String,Object> headers, javax.jms.Session session, org.apache.camel.CamelContext context, JmsMessageType type) throws javax.jms.JMSException
Message
javax.jms.JMSException
protected void populateMapMessage(javax.jms.MapMessage message, Map<?,?> map, org.apache.camel.CamelContext context) throws javax.jms.JMSException
MapMessage
from a Map
instance.javax.jms.JMSException
public Map<String,Object> createMapFromMapMessage(javax.jms.MapMessage message) throws javax.jms.JMSException
Map
from a MapMessage
javax.jms.JMSException
Apache Camel