Class MessageTypeTranslatorImp
- java.lang.Object
-
- com.adaptris.core.jms.MessageTypeTranslatorImp
-
- All Implemented Interfaces:
AdaptrisMessageTranslator
,ComponentLifecycle
,MessageTypeTranslator
,MetadataHandlerContext
- Direct Known Subclasses:
AutoConvertMessageTranslator
,BasicJavaxJmsMessageTranslator
,BlobMessageTranslator
,BytesMessageTranslator
,MapMessageTranslator
,ObjectMessageTranslator
,TextMessageTranslator
public abstract class MessageTypeTranslatorImp extends java.lang.Object implements MessageTypeTranslator, MetadataHandlerContext
Super class of classes that translate
AdaptrisMessage
s to the various type ofjavax.jms.Message
s, and vice versa. Set ametadataFilter
to move metadata when the message is translated. If the moveJmsHeaders flag is true, JMS headers will be moved as well.
-
-
Field Summary
Fields Modifier and Type Field Description protected MetadataHandler
helper
protected org.slf4j.Logger
log
protected javax.jms.Session
session
-
Constructor Summary
Constructors Constructor Description MessageTypeTranslatorImp()
Creates a new instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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-versavoid
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 theMetadataFilter
to be used when converting between JMS messages and AdaptrisMessage objectsvoid
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 aMessage
into aAdaptrisMessage
.<T extends MessageTypeTranslatorImp>
TwithMetadataConverters(MetadataConverter... list)
<T extends MessageTypeTranslatorImp>
TwithMetadataConverters(java.util.List<MetadataConverter> list)
<T extends MessageTypeTranslatorImp>
TwithMetadataFilter(MetadataFilter f)
<T extends MessageTypeTranslatorImp>
TwithMoveJmsHeaders(java.lang.Boolean b)
<T extends MessageTypeTranslatorImp>
TwithReportAllErrors(java.lang.Boolean b)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.adaptris.core.ComponentLifecycle
close, init, start, stop
-
Methods inherited from interface com.adaptris.core.jms.MessageTypeTranslator
translate, translate
-
-
-
-
Field Detail
-
log
protected transient org.slf4j.Logger log
-
session
protected transient javax.jms.Session session
-
helper
protected transient MetadataHandler helper
-
-
Method Detail
-
getMetadataFilter
public MetadataFilter getMetadataFilter()
Return the current metadata filter.- Returns:
MetadataFilter
- See Also:
MetadataHandlerContext.metadataFilter()
-
setMetadataFilter
public void setMetadataFilter(MetadataFilter mf)
Set theMetadataFilter
to be used when converting between JMS messages and AdaptrisMessage objects- Parameters:
mf
- the metadata filter implementation, default isNoOpMetadataFilter
which means ALL metadata is copied into the JMS Message, and vice-versa.- Since:
- 3.0.2
- See Also:
MetadataHandlerContext.metadataFilter()
,ExcludeJmsHeaders
,MetadataFilter
-
registerSession
public void registerSession(javax.jms.Session s)
Description copied from interface:MessageTypeTranslator
Register the JMS session with this message translator.- Specified by:
registerSession
in interfaceMessageTypeTranslator
- Parameters:
s
- the session.
-
currentSession
public javax.jms.Session currentSession()
Description copied from interface:MessageTypeTranslator
Obtain the JMS session currently registered.- Specified by:
currentSession
in interfaceMessageTypeTranslator
- Returns:
- the session
-
getMoveJmsHeaders
public java.lang.Boolean getMoveJmsHeaders()
Returns true if JMS Headers (as well as JMS Properties) should be copied.
- Returns:
- true if JMS Headers (as well as JMS Properties) should be copied, otherwise false
- See Also:
MetadataHandlerContext.moveJmsHeaders()
-
setMoveJmsHeaders
public void setMoveJmsHeaders(java.lang.Boolean b)
Sets whether JMS Headers (as well as JMS Properties) should be copied.
- Parameters:
b
- true if JMS Headers (as well as JMS Properties) should be copied, otherwise false- See Also:
MetadataHandlerContext.moveJmsHeaders()
-
getReportAllErrors
public java.lang.Boolean getReportAllErrors()
- Returns:
- the reportAllErrors
- See Also:
MetadataHandlerContext.reportAllErrors()
-
setMetadataConverters
public void setMetadataConverters(java.util.List<MetadataConverter> mc)
Set the list of metadata converters to uses when converting from AdaptrisMessage to JMS Message.- Parameters:
mc
- list of message converters
-
getMetadataConverters
public java.util.List<MetadataConverter> getMetadataConverters()
Get the list of metadata converters to uses when converting from AdaptrisMessage to JMS Message.- Returns:
- list of message converters
-
setReportAllErrors
public void setReportAllErrors(java.lang.Boolean b)
Report all non-critical errors with a stacktrace.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.
- Parameters:
b
- the reportAllErrors to set- See Also:
MetadataHandlerContext.reportAllErrors()
-
registerMessageFactory
public void registerMessageFactory(AdaptrisMessageFactory f)
Description copied from interface:AdaptrisMessageTranslator
Register the message factory that should be used to create messages.- Specified by:
registerMessageFactory
in interfaceAdaptrisMessageTranslator
- Parameters:
f
- the message factory.
-
currentMessageFactory
public AdaptrisMessageFactory currentMessageFactory()
Description copied from interface:AdaptrisMessageTranslator
Return the currently registered message factory.- Specified by:
currentMessageFactory
in interfaceAdaptrisMessageTranslator
- Returns:
- the message factory.
-
moveJmsHeaders
public boolean moveJmsHeaders()
Description copied from interface:MetadataHandlerContext
Returns true if JMS Headers should be copied as metadata and vice-versa
- Specified by:
moveJmsHeaders
in interfaceMetadataHandlerContext
- Returns:
- true if JMS Headers (as well as JMS Properties) should be copied, otherwise false
-
reportAllErrors
public boolean reportAllErrors()
- Specified by:
reportAllErrors
in interfaceMetadataHandlerContext
- Returns:
- the reportAllErrors
-
metadataFilter
public MetadataFilter metadataFilter()
Description copied from interface:MetadataHandlerContext
Get the metadata filter implementation to be used when converting between AdaptrisMessage and JMS Message objects.- Specified by:
metadataFilter
in interfaceMetadataHandlerContext
- Returns:
- the metadata filter to use.
-
metadataConverters
public java.util.List<MetadataConverter> metadataConverters()
Description copied from interface:MetadataHandlerContext
Get the list of metadata converters to uses when converting from AdaptrisMessage to JMS Message.- Specified by:
metadataConverters
in interfaceMetadataHandlerContext
- Returns:
- the list of metadata converters
-
withMetadataConverters
public <T extends MessageTypeTranslatorImp> T withMetadataConverters(java.util.List<MetadataConverter> list)
-
withMetadataConverters
public <T extends MessageTypeTranslatorImp> T withMetadataConverters(MetadataConverter... list)
-
withReportAllErrors
public <T extends MessageTypeTranslatorImp> T withReportAllErrors(java.lang.Boolean b)
-
withMoveJmsHeaders
public <T extends MessageTypeTranslatorImp> T withMoveJmsHeaders(java.lang.Boolean b)
-
withMetadataFilter
public <T extends MessageTypeTranslatorImp> T withMetadataFilter(MetadataFilter f)
-
translate
public static AdaptrisMessage translate(MessageTypeTranslator translator, javax.jms.Message msg) throws javax.jms.JMSException
Convenience method to translate aMessage
into aAdaptrisMessage
.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.- Parameters:
translator
- the translator to use.msg
- the javax.jms.Message- Returns:
- an AdaptrisMessage instance
- Throws:
javax.jms.JMSException
- if the message could not be translated.
-
copyConfiguration
protected static MessageTypeTranslatorImp copyConfiguration(MessageTypeTranslator source, MessageTypeTranslatorImp dest) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
start
protected static void start(MessageTypeTranslator mt) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
stop
protected static void stop(MessageTypeTranslator mt)
-
-