Package org.apache.camel.component.jms
Class JmsBinding
java.lang.Object
org.apache.camel.component.jms.JmsBinding
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidappendJmsProperties(jakarta.jms.Message jmsMessage, org.apache.camel.Exchange exchange) Appends the JMS headers from the CamelJmsMessagevoidappendJmsProperties(jakarta.jms.Message jmsMessage, org.apache.camel.Exchange exchange, org.apache.camel.Message in) Appends the JMS headers from the CamelJmsMessagevoidappendJmsProperty(jakarta.jms.Message jmsMessage, org.apache.camel.Exchange exchange, String headerName, Object headerValue) protected voidcheckDeserializedClass(Object payload) Applies the configured (or default) deserialization filter to the class of an object returned byObjectMessage.getObject().protected ObjectcreateByteArrayFromBytesMessage(org.apache.camel.Exchange exchange, jakarta.jms.BytesMessage message) protected ObjectcreateInputStreamFromStreamMessage(jakarta.jms.StreamMessage message) protected jakarta.jms.MessagecreateJmsMessage(Exception cause, jakarta.jms.Session session) protected jakarta.jms.MessagecreateJmsMessage(org.apache.camel.Exchange exchange, Object body, Map<String, Object> headers, jakarta.jms.Session session, org.apache.camel.CamelContext context) protected jakarta.jms.MessagecreateJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, jakarta.jms.Session session, org.apache.camel.CamelContext context) protected jakarta.jms.MessagecreateJmsMessageForType(org.apache.camel.Exchange exchange, Object body, jakarta.jms.Session session, org.apache.camel.CamelContext context, JmsMessageType type) Create theMessagecreateMapFromMapMessage(jakarta.jms.MapMessage message) Extracts aMapfrom aMapMessageextractBodyFromJms(org.apache.camel.Exchange exchange, jakarta.jms.Message message) Extracts the body from the JMS messageextractHeadersFromJms(jakarta.jms.Message jmsMessage, org.apache.camel.Exchange exchange) protected JmsMessageTypegetJMSMessageTypeForBody(org.apache.camel.Exchange exchange, Object body) Return theJmsMessageTypegetObjectProperty(jakarta.jms.Message jmsMessage, String name) Deprecated.not in useprotected ObjectgetValidJMSHeaderValue(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 booleanisStandardJMSHeader(String headerName) Is the given header a standard JMS headerjakarta.jms.MessagemakeJmsMessage(org.apache.camel.Exchange exchange, jakarta.jms.Session session) Creates a JMS message from the Camel exchange and messagejakarta.jms.MessagemakeJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, jakarta.jms.Session session, Exception cause) Creates a JMS message from the Camel exchange and messageprotected voidpopulateMapMessage(jakarta.jms.MapMessage message, Map<?, ?> map, org.apache.camel.CamelContext context) Populates aMapMessagefrom aMapinstance.protected booleanshouldOutputHeader(String headerName, Object headerValue, org.apache.camel.Exchange exchange) Strategy to allow filtering of headers which are put on the JMS message
-
Constructor Details
-
JmsBinding
public JmsBinding() -
JmsBinding
-
-
Method Details
-
checkDeserializedClass
Applies the configured (or default) deserialization filter to the class of an object returned byObjectMessage.getObject(). ThrowsSecurityExceptionif the class is rejected.Note: this check runs after the JMS provider has already deserialized the payload. It prevents unexpected classes from being propagated to the route, but it cannot, on its own, stop gadget chains whose
readObject()fires inside the provider'sObjectInputStream. Complete protection requires configuring the JMS provider's own deserialization filter and/or the JVM-wide-Djdk.serialFilter. -
extractBodyFromJms
Extracts the body from the JMS message- Parameters:
exchange- the exchangemessage- the message to extract its body- Returns:
- the body, can be null
-
extractHeadersFromJms
-
getObjectProperty
@Deprecated public Object getObjectProperty(jakarta.jms.Message jmsMessage, String name) throws jakarta.jms.JMSException Deprecated.not in use- Throws:
jakarta.jms.JMSException
-
createByteArrayFromBytesMessage
protected Object createByteArrayFromBytesMessage(org.apache.camel.Exchange exchange, jakarta.jms.BytesMessage message) throws jakarta.jms.JMSException - Throws:
jakarta.jms.JMSException
-
createInputStreamFromStreamMessage
-
makeJmsMessage
public jakarta.jms.Message makeJmsMessage(org.apache.camel.Exchange exchange, jakarta.jms.Session session) throws jakarta.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:
jakarta.jms.JMSException- if the message could not be created
-
makeJmsMessage
public jakarta.jms.Message makeJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, jakarta.jms.Session session, Exception cause) throws jakarta.jms.JMSException Creates a JMS message from the Camel exchange and message- Parameters:
exchange- the current exchangecamelMessage- the body to make a jakarta.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:
jakarta.jms.JMSException- if the message could not be created
-
appendJmsProperties
public void appendJmsProperties(jakarta.jms.Message jmsMessage, org.apache.camel.Exchange exchange) throws jakarta.jms.JMSException Appends the JMS headers from the CamelJmsMessage- Throws:
jakarta.jms.JMSException
-
appendJmsProperties
public void appendJmsProperties(jakarta.jms.Message jmsMessage, org.apache.camel.Exchange exchange, org.apache.camel.Message in) throws jakarta.jms.JMSException Appends the JMS headers from the CamelJmsMessage- Throws:
jakarta.jms.JMSException
-
appendJmsProperty
public void appendJmsProperty(jakarta.jms.Message jmsMessage, org.apache.camel.Exchange exchange, String headerName, Object headerValue) throws jakarta.jms.JMSException - Throws:
jakarta.jms.JMSException
-
isStandardJMSHeader
Is the given header a standard JMS header- Parameters:
headerName- the header name- Returns:
- true if its a standard JMS header
-
getValidJMSHeaderValue
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 jakarta.jms.Message createJmsMessage(Exception cause, jakarta.jms.Session session) throws jakarta.jms.JMSException - Throws:
jakarta.jms.JMSException
-
createJmsMessage
protected jakarta.jms.Message createJmsMessage(org.apache.camel.Exchange exchange, org.apache.camel.Message camelMessage, jakarta.jms.Session session, org.apache.camel.CamelContext context) throws jakarta.jms.JMSException - Throws:
jakarta.jms.JMSException
-
createJmsMessage
protected jakarta.jms.Message createJmsMessage(org.apache.camel.Exchange exchange, Object body, Map<String, Object> headers, jakarta.jms.Session session, org.apache.camel.CamelContext context) throws jakarta.jms.JMSException- Throws:
jakarta.jms.JMSException
-
getJMSMessageTypeForBody
Return theJmsMessageType- Returns:
- type or null if no mapping was possible
-
createJmsMessageForType
protected jakarta.jms.Message createJmsMessageForType(org.apache.camel.Exchange exchange, Object body, jakarta.jms.Session session, org.apache.camel.CamelContext context, JmsMessageType type) throws jakarta.jms.JMSException Create theMessage- Returns:
- jmsMessage or null if the mapping was not successfully
- Throws:
jakarta.jms.JMSException
-
populateMapMessage
protected void populateMapMessage(jakarta.jms.MapMessage message, Map<?, ?> map, org.apache.camel.CamelContext context) throws jakarta.jms.JMSExceptionPopulates aMapMessagefrom aMapinstance.- Throws:
jakarta.jms.JMSException
-
createMapFromMapMessage
public Map<String,Object> createMapFromMapMessage(jakarta.jms.MapMessage message) throws jakarta.jms.JMSException Extracts aMapfrom aMapMessage- Throws:
jakarta.jms.JMSException
-
shouldOutputHeader
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
-