Class BaseJmsPollingConsumerImpl
- java.lang.Object
-
- com.adaptris.core.AdaptrisMessageWorkerImp
-
- com.adaptris.core.AdaptrisMessageConsumerImp
-
- com.adaptris.core.AdaptrisPollingConsumer
-
- com.adaptris.core.jms.BaseJmsPollingConsumerImpl
-
- All Implemented Interfaces:
AdaptrisComponent
,AdaptrisMessageConsumer
,AdaptrisMessageWorker
,ComponentLifecycle
,ComponentLifecycleExtension
,JmsActorConfig
,MessageEventGenerator
,StateManagedComponent
- Direct Known Subclasses:
JmsPollingConsumerImpl
,JmsSyncConsumer
public abstract class BaseJmsPollingConsumerImpl extends AdaptrisPollingConsumer implements JmsActorConfig
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.adaptris.core.AdaptrisPollingConsumer
AdaptrisPollingConsumer.LockOperator
-
-
Field Summary
-
Fields inherited from class com.adaptris.core.AdaptrisMessageWorkerImp
log
-
-
Constructor Summary
Constructors Constructor Description BaseJmsPollingConsumerImpl()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
close()
Closes the component.protected void
closeMessageConsumer()
protected void
closeSession()
int
configuredAcknowledgeMode()
Return the current acknowledge mode.CorrelationIdSource
configuredCorrelationIdSource()
Return the current correlation id source.AdaptrisMessageListener
configuredMessageListener()
return the current configured MessageListener.MessageTypeTranslator
configuredMessageTranslator()
Return the currently configured messageTranslator.java.lang.String
consumeLocationKey()
Provides the metadata key "JMSDestination" which will only be populated ifMessageTypeTranslatorImp.getMoveJmsHeaders()
is true.protected abstract javax.jms.MessageConsumer
createConsumer()
protected abstract javax.jms.Session
createSession(int acknowledgeMode, boolean transacted)
javax.jms.Session
currentSession()
Return the current jms session.protected int
doProcessMessage()
java.lang.String
getAcknowledgeMode()
Sets the JMS acknowledge mode to use.CorrelationIdSource
getCorrelationIdSource()
Sets correlationIdSource.java.lang.String
getMessageSelector()
The filter expression to use when matching messages to consume@NonNull MessageTypeTranslator
getMessageTranslator()
Sets the MessageTypeTranslator to use.TimeInterval
getReceiveTimeout()
Sets the period that this class should wait for the broker to deliver a message.void
init()
Initialises the component.protected void
initConsumer()
protected void
initSession()
boolean
isManagedTransaction()
javax.jms.MessageConsumer
messageConsumer()
OnMessageHandler
messageHandler()
long
rollbackTimeout()
How long we should wait after a rollback before continuing on with processingvoid
setAcknowledgeMode(java.lang.String acknowledgeMode)
Sets the JMS acknowledge mode to use.void
setCorrelationIdSource(CorrelationIdSource correlationIdSource)
Sets correlationIdSource.void
setManagedTransaction(boolean managedTransaction)
void
setMessageSelector(java.lang.String messageSelector)
The filter expression to use when matching messages to consumevoid
setMessageTranslator(@NonNull MessageTypeTranslator messageTranslator)
Sets the MessageTypeTranslator to use.void
setReceiveTimeout(TimeInterval receiveTimeout)
Sets the period that this class should wait for the broker to deliver a message.-
Methods inherited from class com.adaptris.core.AdaptrisPollingConsumer
continueProcessingMessages, getMaxMessagesPerPoll, getPoller, getReacquireLockBetweenMessages, prepare, prepareConsumer, processMessages, releaseLock, setMaxMessagesPerPoll, setPoller, setReacquireLockBetweenMessages, start, stop
-
Methods inherited from class com.adaptris.core.AdaptrisMessageConsumerImp
changeState, newThreadName, registerAdaptrisMessageListener, renameThread, requestClose, requestInit, requestStart, requestStop, retrieveAdaptrisMessageListener, retrieveComponentState
-
Methods inherited from class com.adaptris.core.AdaptrisMessageWorkerImp
createName, createQualifier, decode, encode, getEncoder, getIsTrackingEndpoint, getMessageFactory, getUniqueId, handleConnectionException, isTrackingEndpoint, registerConnection, registerEncoderMessageFactory, retrieveConnection, setEncoder, setIsTrackingEndpoint, setMessageFactory, setUniqueId, withMessageFactory, withUniqueID
-
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.AdaptrisComponent
getUniqueId
-
Methods inherited from interface com.adaptris.core.AdaptrisMessageWorker
decode, encode, getEncoder, getMessageFactory, handleConnectionException, registerConnection, retrieveConnection, setEncoder, setMessageFactory
-
Methods inherited from interface com.adaptris.core.jms.JmsActorConfig
currentLogger
-
Methods inherited from interface com.adaptris.core.MessageEventGenerator
createName, createQualifier, isTrackingEndpoint
-
-
-
-
Method Detail
-
init
public void init() throws CoreException
Description copied from interface:ComponentLifecycle
Initialises the component.Component initialisation includes config verification, creation of connections etc.
- Specified by:
init
in interfaceComponentLifecycle
- Overrides:
init
in classAdaptrisPollingConsumer
- Throws:
CoreException
- wrapping any underlyingException
s- See Also:
ComponentLifecycle.init()
-
close
public void close()
Description copied from interface:ComponentLifecycle
Closes the component.A closed component should release any connections it uses, etc. and clean up completely. Throwing a
RuntimeException
may cause unintended consequences- Specified by:
close
in interfaceComponentLifecycle
- Overrides:
close
in classAdaptrisPollingConsumer
- See Also:
ComponentLifecycle.close()
-
initConsumer
protected void initConsumer() throws javax.jms.JMSException, CoreException
- Throws:
javax.jms.JMSException
CoreException
-
createConsumer
protected abstract javax.jms.MessageConsumer createConsumer() throws javax.jms.JMSException, CoreException
- Throws:
javax.jms.JMSException
CoreException
-
messageConsumer
public javax.jms.MessageConsumer messageConsumer()
-
closeMessageConsumer
protected void closeMessageConsumer()
-
messageHandler
public OnMessageHandler messageHandler()
-
doProcessMessage
protected int doProcessMessage()
-
rollbackTimeout
public long rollbackTimeout()
Description copied from interface:JmsActorConfig
How long we should wait after a rollback before continuing on with processing- Specified by:
rollbackTimeout
in interfaceJmsActorConfig
- Returns:
- the timeout in ms.
-
configuredCorrelationIdSource
public CorrelationIdSource configuredCorrelationIdSource()
Description copied from interface:JmsActorConfig
Return the current correlation id source.- Specified by:
configuredCorrelationIdSource
in interfaceJmsActorConfig
- Returns:
- the correlation id source
-
configuredMessageTranslator
public MessageTypeTranslator configuredMessageTranslator()
Description copied from interface:JmsActorConfig
Return the currently configured messageTranslator.- Specified by:
configuredMessageTranslator
in interfaceJmsActorConfig
- Returns:
- the MessageTypeTranslator instance.
-
configuredAcknowledgeMode
public int configuredAcknowledgeMode()
Description copied from interface:JmsActorConfig
Return the current acknowledge mode.- Specified by:
configuredAcknowledgeMode
in interfaceJmsActorConfig
- Returns:
- the session acknowledge mode.
-
initSession
protected void initSession() throws javax.jms.JMSException, CoreException
- Throws:
javax.jms.JMSException
CoreException
-
createSession
protected abstract javax.jms.Session createSession(int acknowledgeMode, boolean transacted) throws javax.jms.JMSException
- Throws:
javax.jms.JMSException
-
currentSession
public javax.jms.Session currentSession()
Description copied from interface:JmsActorConfig
Return the current jms session.- Specified by:
currentSession
in interfaceJmsActorConfig
- Returns:
- the current javax.jms.Session
-
closeSession
protected void closeSession()
-
setManagedTransaction
public void setManagedTransaction(boolean managedTransaction)
-
isManagedTransaction
public boolean isManagedTransaction()
- Specified by:
isManagedTransaction
in interfaceJmsActorConfig
- Returns:
- whether we are in a managed (XA) transaction
-
configuredMessageListener
public AdaptrisMessageListener configuredMessageListener()
Description copied from interface:JmsActorConfig
return the current configured MessageListener.- Specified by:
configuredMessageListener
in interfaceJmsActorConfig
- Returns:
- the adaptris message listener instance.
-
consumeLocationKey
public java.lang.String consumeLocationKey()
Provides the metadata key "JMSDestination" which will only be populated ifMessageTypeTranslatorImp.getMoveJmsHeaders()
is true.- Specified by:
consumeLocationKey
in interfaceAdaptrisMessageConsumer
- Returns:
- the metadata key;
- Since:
- 3.9.0
-
getAcknowledgeMode
public java.lang.String getAcknowledgeMode()
Sets the JMS acknowledge mode to use.The value may be AUTO_KNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE or the int values corresponding to the JMS Session Constant. If not set explicitly then defaults to
CLIENT_ACKNOWLEDGE
.
-
setAcknowledgeMode
public void setAcknowledgeMode(java.lang.String acknowledgeMode)
Sets the JMS acknowledge mode to use.The value may be AUTO_KNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE or the int values corresponding to the JMS Session Constant. If not set explicitly then defaults to
CLIENT_ACKNOWLEDGE
.
-
getMessageTranslator
@NonNull public @NonNull MessageTypeTranslator getMessageTranslator()
Sets the MessageTypeTranslator to use.If not configured explicitly then defaults to
AutoConvertMessageTranslator
which attempts to do the right thing
-
setMessageTranslator
public void setMessageTranslator(@NonNull @NonNull MessageTypeTranslator messageTranslator)
Sets the MessageTypeTranslator to use.If not configured explicitly then defaults to
AutoConvertMessageTranslator
which attempts to do the right thing
-
getCorrelationIdSource
public CorrelationIdSource getCorrelationIdSource()
Sets correlationIdSource.If not configured explicitly then defaults to
NullCorrelationIdSource
.
-
setCorrelationIdSource
public void setCorrelationIdSource(CorrelationIdSource correlationIdSource)
Sets correlationIdSource.If not configured explicitly then defaults to
NullCorrelationIdSource
.
-
getReceiveTimeout
public TimeInterval getReceiveTimeout()
Sets the period that this class should wait for the broker to deliver a message.The default value of 2 seconds should be suitable in most situations. If there is a high degree of network latency and this class does not consume messages from Queues / Topics as expected try setting a higher value.
-
setReceiveTimeout
public void setReceiveTimeout(TimeInterval receiveTimeout)
Sets the period that this class should wait for the broker to deliver a message.The default value of 2 seconds should be suitable in most situations. If there is a high degree of network latency and this class does not consume messages from Queues / Topics as expected try setting a higher value.
-
getMessageSelector
public java.lang.String getMessageSelector()
The filter expression to use when matching messages to consume
-
setMessageSelector
public void setMessageSelector(java.lang.String messageSelector)
The filter expression to use when matching messages to consume
-
-