public abstract class MessageTypeTranslatorImp extends java.lang.Object implements MessageTypeTranslator, MetadataHandlerContext
Super class of classes that translate AdaptrisMessage
s to the
various type of javax.jms.Message
s, and vice versa. Set a
metadataFilter
to move metadata when the message is translated.
If the moveJmsHeaders flag is true, JMS headers will be moved as well.
Modifier and Type | Field and Description |
---|---|
protected MetadataHandler |
helper |
protected org.slf4j.Logger |
log |
protected javax.jms.Session |
session |
Constructor and Description |
---|
MessageTypeTranslatorImp()
Creates a new instance.
|
Modifier and Type | Method and Description |
---|---|
protected static MessageTypeTranslatorImp |
copyConfiguration(MessageTypeTranslator source,
MessageTypeTranslatorImp dest) |
AdaptrisMessageFactory |
currentMessageFactory()
Return the currently registered message factory.
|
javax.jms.Session |
currentSession()
Obtain the JMS session currently registered.
|
java.util.List<MetadataConverter> |
getMetadataConverters()
Get the list of metadata converters to uses when converting from AdaptrisMessage to JMS Message.
|
MetadataFilter |
getMetadataFilter()
Return the current metadata filter.
|
java.lang.Boolean |
getMoveJmsHeaders()
Returns true if JMS Headers (as well as JMS Properties) should be copied.
|
java.lang.Boolean |
getReportAllErrors() |
java.util.List<MetadataConverter> |
metadataConverters()
Get the list of metadata converters to uses when converting from AdaptrisMessage to JMS Message.
|
MetadataFilter |
metadataFilter()
Get the metadata filter implementation to be used when converting between AdaptrisMessage and JMS Message objects.
|
boolean |
moveJmsHeaders()
Returns true if JMS Headers should be copied as metadata and vice-versa
|
void |
registerMessageFactory(AdaptrisMessageFactory f)
Register the message factory that should be used to create messages.
|
void |
registerSession(javax.jms.Session s)
Register the JMS session with this message translator.
|
boolean |
reportAllErrors() |
void |
setMetadataConverters(java.util.List<MetadataConverter> mc)
Set the list of metadata converters to uses when converting from AdaptrisMessage to JMS Message.
|
void |
setMetadataFilter(MetadataFilter mf)
Set the
MetadataFilter to be used when converting between JMS messages and AdaptrisMessage objects |
void |
setMoveJmsHeaders(java.lang.Boolean b)
Sets whether JMS Headers (as well as JMS Properties) should be copied.
|
void |
setReportAllErrors(java.lang.Boolean b)
Report all non-critical errors with a stacktrace.
|
protected static void |
start(MessageTypeTranslator mt) |
protected static void |
stop(MessageTypeTranslator mt) |
static AdaptrisMessage |
translate(MessageTypeTranslator translator,
javax.jms.Message msg)
Convenience method to translate a
Message into a AdaptrisMessage . |
<T extends MessageTypeTranslatorImp> |
withMetadataConverters(java.util.List<MetadataConverter> list) |
<T extends MessageTypeTranslatorImp> |
withMetadataConverters(MetadataConverter... list) |
<T extends MessageTypeTranslatorImp> |
withMetadataFilter(MetadataFilter f) |
<T extends MessageTypeTranslatorImp> |
withMoveJmsHeaders(java.lang.Boolean b) |
<T extends MessageTypeTranslatorImp> |
withReportAllErrors(java.lang.Boolean b) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
translate, translate
close, init, start, stop
protected transient org.slf4j.Logger log
protected transient javax.jms.Session session
protected transient MetadataHandler helper
public MessageTypeTranslatorImp()
Creates a new instance. By default
public MetadataFilter getMetadataFilter()
MetadataFilter
MetadataHandlerContext.metadataFilter()
public void setMetadataFilter(MetadataFilter mf)
MetadataFilter
to be used when converting between JMS messages and AdaptrisMessage objectsmf
- the metadata filter implementation, default is NoOpMetadataFilter
which means
ALL metadata is copied into the JMS Message, and vice-versa.MetadataHandlerContext.metadataFilter()
,
ExcludeJmsHeaders
,
MetadataFilter
public void registerSession(javax.jms.Session s)
MessageTypeTranslator
registerSession
in interface MessageTypeTranslator
s
- the session.public javax.jms.Session currentSession()
MessageTypeTranslator
currentSession
in interface MessageTypeTranslator
public java.lang.Boolean getMoveJmsHeaders()
Returns true if JMS Headers (as well as JMS Properties) should be copied.
MetadataHandlerContext.moveJmsHeaders()
public void setMoveJmsHeaders(java.lang.Boolean b)
Sets whether JMS Headers (as well as JMS Properties) should be copied.
b
- true if JMS Headers (as well as JMS Properties) should be copied, otherwise falseMetadataHandlerContext.moveJmsHeaders()
public java.lang.Boolean getReportAllErrors()
MetadataHandlerContext.reportAllErrors()
public void setMetadataConverters(java.util.List<MetadataConverter> mc)
mc
- list of message converterspublic java.util.List<MetadataConverter> getMetadataConverters()
public void setReportAllErrors(java.lang.Boolean b)
When moving JMS Headers, it is possible depending on the vendor that some exceptions are thrown when attempting to get standard JMS headers. By default, these errors are simply logged without a stack-trace. If the full strack trace is required, then set this to be true.
b
- the reportAllErrors to setMetadataHandlerContext.reportAllErrors()
public void registerMessageFactory(AdaptrisMessageFactory f)
AdaptrisMessageTranslator
registerMessageFactory
in interface AdaptrisMessageTranslator
f
- the message factory.public AdaptrisMessageFactory currentMessageFactory()
AdaptrisMessageTranslator
currentMessageFactory
in interface AdaptrisMessageTranslator
public boolean moveJmsHeaders()
MetadataHandlerContext
Returns true if JMS Headers should be copied as metadata and vice-versa
moveJmsHeaders
in interface MetadataHandlerContext
public boolean reportAllErrors()
reportAllErrors
in interface MetadataHandlerContext
public MetadataFilter metadataFilter()
MetadataHandlerContext
metadataFilter
in interface MetadataHandlerContext
public java.util.List<MetadataConverter> metadataConverters()
MetadataHandlerContext
metadataConverters
in interface MetadataHandlerContext
public <T extends MessageTypeTranslatorImp> T withMetadataConverters(java.util.List<MetadataConverter> list)
public <T extends MessageTypeTranslatorImp> T withMetadataConverters(MetadataConverter... list)
public <T extends MessageTypeTranslatorImp> T withReportAllErrors(java.lang.Boolean b)
public <T extends MessageTypeTranslatorImp> T withMoveJmsHeaders(java.lang.Boolean b)
public <T extends MessageTypeTranslatorImp> T withMetadataFilter(MetadataFilter f)
public static AdaptrisMessage translate(MessageTypeTranslator translator, javax.jms.Message msg) throws javax.jms.JMSException
Message
into a AdaptrisMessage
.
If translation fails, then an attempt is made to use an AutoConvertMessageTranslator
instance to attempt to translate
the message so that configurations are handled as well as possible.
translator
- the translator to use.msg
- the javax.jms.Messagejavax.jms.JMSException
- if the message could not be translated.protected static MessageTypeTranslatorImp copyConfiguration(MessageTypeTranslator source, MessageTypeTranslatorImp dest) throws javax.jms.JMSException
javax.jms.JMSException
protected static void start(MessageTypeTranslator mt) throws javax.jms.JMSException
javax.jms.JMSException
protected static void stop(MessageTypeTranslator mt)