Package org.apache.camel.component.jms
Class JmsBinding
- java.lang.Object
-
- org.apache.camel.component.jms.JmsBinding
-
public class JmsBinding extends Object
-
-
Constructor Summary
Constructors Constructor Description JmsBinding()
JmsBinding(JmsEndpoint endpoint)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
appendJmsProperties(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange)
Appends the JMS headers from the CamelJmsMessage
void
appendJmsProperties(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange, org.apache.camel.Message in)
Appends the JMS headers from the CamelJmsMessage
void
appendJmsProperty(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange, org.apache.camel.Message in, String headerName, Object headerValue)
protected Object
createByteArrayFromBytesMessage(org.apache.camel.Exchange exchange, javax.jms.BytesMessage message)
protected Object
createInputStreamFromStreamMessage(org.apache.camel.Exchange exchange, javax.jms.StreamMessage 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
createJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, 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 theMessage
Map<String,Object>
createMapFromMapMessage(javax.jms.MapMessage message)
Extracts aMap
from aMapMessage
Object
extractBodyFromJms(org.apache.camel.Exchange exchange, javax.jms.Message message)
Extracts the body from the JMS messageMap<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 theJmsMessageType
Object
getObjectProperty(javax.jms.Message jmsMessage, String name)
Deprecated.not in useprotected 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 headerjavax.jms.Message
makeJmsMessage(org.apache.camel.Exchange exchange, javax.jms.Session session)
Creates a JMS message from the Camel exchange and messagejavax.jms.Message
makeJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, javax.jms.Session session, Exception cause)
Creates a JMS message from the Camel exchange and messageprotected void
populateMapMessage(javax.jms.MapMessage message, Map<?,?> map, org.apache.camel.CamelContext context)
Populates aMapMessage
from aMap
instance.protected boolean
shouldOutputHeader(org.apache.camel.Message camelMessage, String headerName, Object headerValue, org.apache.camel.Exchange exchange)
Strategy to allow filtering of headers which are put on the JMS message
-
-
-
Constructor Detail
-
JmsBinding
public JmsBinding()
-
JmsBinding
public JmsBinding(JmsEndpoint endpoint)
-
-
Method Detail
-
extractBodyFromJms
public Object extractBodyFromJms(org.apache.camel.Exchange exchange, javax.jms.Message message)
Extracts the body from the JMS message- Parameters:
exchange
- the exchangemessage
- the message to extract its body- Returns:
- the body, can be null
-
extractHeadersFromJms
public Map<String,Object> extractHeadersFromJms(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange)
-
getObjectProperty
@Deprecated public Object getObjectProperty(javax.jms.Message jmsMessage, String name) throws javax.jms.JMSException
Deprecated.not in use- Throws:
javax.jms.JMSException
-
createByteArrayFromBytesMessage
protected Object createByteArrayFromBytesMessage(org.apache.camel.Exchange exchange, javax.jms.BytesMessage message) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
createInputStreamFromStreamMessage
protected Object createInputStreamFromStreamMessage(org.apache.camel.Exchange exchange, javax.jms.StreamMessage message)
-
makeJmsMessage
public javax.jms.Message makeJmsMessage(org.apache.camel.Exchange exchange, javax.jms.Session session) throws javax.jms.JMSException
Creates a JMS message from the Camel exchange and message- Parameters:
exchange
- the current exchangesession
- the JMS session used to create the message- Returns:
- a newly created JMS Message instance containing the
- Throws:
javax.jms.JMSException
- if the message could not be created
-
makeJmsMessage
public javax.jms.Message makeJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, javax.jms.Session session, Exception cause) throws javax.jms.JMSException
Creates a JMS message from the Camel exchange and message- Parameters:
exchange
- the current exchangecamelMessage
- the body to make a javax.jms.Message assession
- the JMS session used to create the messagecause
- optional exception occurred that should be sent as reply instead of a regular body- Returns:
- a newly created JMS Message instance containing the
- Throws:
javax.jms.JMSException
- if the message could not be created
-
appendJmsProperties
public void appendJmsProperties(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange) throws javax.jms.JMSException
Appends the JMS headers from the CamelJmsMessage
- Throws:
javax.jms.JMSException
-
appendJmsProperties
public void appendJmsProperties(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange, org.apache.camel.Message in) throws javax.jms.JMSException
Appends the JMS headers from the CamelJmsMessage
- Throws:
javax.jms.JMSException
-
appendJmsProperty
public void appendJmsProperty(javax.jms.Message jmsMessage, org.apache.camel.Exchange exchange, org.apache.camel.Message in, String headerName, Object headerValue) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
isStandardJMSHeader
protected boolean isStandardJMSHeader(String headerName)
Is the given header a standard JMS header- Parameters:
headerName
- the header name- Returns:
- true if its a standard JMS header
-
getValidJMSHeaderValue
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. This default implementation will allow:- any primitives and their counter Objects (Integer, Double etc.)
- String and any other literals, Character, CharSequence
- Boolean
- Number
- java.math.BigInteger
- java.math.BigDecimal
- java.util.Date
- Parameters:
headerName
- the header nameheaderValue
- the header value- Returns:
- the value to use, null to ignore this header
-
createJmsMessage
protected javax.jms.Message createJmsMessage(Exception cause, javax.jms.Session session) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
createJmsMessage
protected javax.jms.Message createJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, javax.jms.Session session, org.apache.camel.CamelContext context) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
createJmsMessage
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
- Throws:
javax.jms.JMSException
-
getJMSMessageTypeForBody
protected JmsMessageType getJMSMessageTypeForBody(org.apache.camel.Exchange exchange, Object body, Map<String,Object> headers, javax.jms.Session session, org.apache.camel.CamelContext context)
Return theJmsMessageType
- Returns:
- type or null if no mapping was possible
-
createJmsMessageForType
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
Create theMessage
- Returns:
- jmsMessage or null if the mapping was not successfully
- Throws:
javax.jms.JMSException
-
populateMapMessage
protected void populateMapMessage(javax.jms.MapMessage message, Map<?,?> map, org.apache.camel.CamelContext context) throws javax.jms.JMSException
Populates aMapMessage
from aMap
instance.- Throws:
javax.jms.JMSException
-
createMapFromMapMessage
public Map<String,Object> createMapFromMapMessage(javax.jms.MapMessage message) throws javax.jms.JMSException
Extracts aMap
from aMapMessage
- Throws:
javax.jms.JMSException
-
shouldOutputHeader
protected boolean shouldOutputHeader(org.apache.camel.Message camelMessage, 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
-
-