Class LargeMessageProducer
- java.lang.Object
-
- com.adaptris.core.AdaptrisMessageWorkerImp
-
- com.adaptris.core.AdaptrisMessageProducerImp
-
- com.adaptris.core.ProduceOnlyProducerImp
-
- com.adaptris.core.jms.sonic.LargeMessageProducer
-
- All Implemented Interfaces:
AdaptrisComponent
,AdaptrisMessageProducer
,AdaptrisMessageSender
,AdaptrisMessageWorker
,ComponentLifecycle
,ComponentLifecycleExtension
,LicensedComponent
,MessageEventGenerator
,progress.message.jclient.ChannelListener
public class LargeMessageProducer extends ProduceOnlyProducerImp implements progress.message.jclient.ChannelListener, LicensedComponent
Implementation of
AdaptrisMessageProducer
which uses Sonic MQ Recoverable File Channels for Large Messages. See Sonic MQ Application Programming Guide Chapter 11 for a full description of this functionality.This should be configured with a
JmsConnection
with the appropriate Sonic based VendorImplementation, otherwise results are undefined.In the adapter configuration file this class is aliased as sonic-large-message-producer which is the preferred alternative to the fully qualified classname when building your configuration.
License Required: STANDARD
-
-
Field Summary
-
Fields inherited from class com.adaptris.core.AdaptrisMessageWorkerImp
log
-
-
Constructor Summary
Constructors Constructor Description LargeMessageProducer()
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doProduce(AdaptrisMessage msg, java.lang.String queueName)
java.lang.String
endpoint(AdaptrisMessage msg)
SendChannelConfig
getConfig()
Returns theSendChannelConfig
to use.SonicHelper.MessageType
getMessageType()
java.lang.String
getQueue()
the initial SonicMQ Queue that we use to initiate the large message transfer.void
init()
boolean
isEnabled(License license)
SonicHelper.MessageType
messageType()
void
onChannelStatus(progress.message.jclient.Channel channel, java.lang.Exception e)
Notification of Exceptions and / or transfer completion by Sonic-managed thread.void
prepare()
void
setConfig(SendChannelConfig cfg)
Sets theLargeMessageConfig
to use.void
setMessageType(SonicHelper.MessageType messageType)
Set the type of message to initial send when creating the channel.void
setQueue(java.lang.String queue)
the initial SonicMQ Queue that we use to initiate the large message transfer.LargeMessageProducer
withQueue(java.lang.String s)
-
Methods inherited from class com.adaptris.core.ProduceOnlyProducerImp
produce, request, request
-
Methods inherited from class com.adaptris.core.AdaptrisMessageProducerImp
createName
-
Methods inherited from class com.adaptris.core.AdaptrisMessageWorkerImp
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.ComponentLifecycle
close, start, stop
-
Methods inherited from interface com.adaptris.core.MessageEventGenerator
createQualifier, isTrackingEndpoint
-
-
-
-
Method Detail
-
prepare
public void prepare() throws CoreException
- Specified by:
prepare
in interfaceComponentLifecycleExtension
- Throws:
CoreException
-
isEnabled
public boolean isEnabled(License license)
- Specified by:
isEnabled
in interfaceLicensedComponent
-
init
public void init() throws CoreException
- Specified by:
init
in interfaceComponentLifecycle
- Throws:
CoreException
- See Also:
ComponentLifecycle.init()
-
onChannelStatus
public void onChannelStatus(progress.message.jclient.Channel channel, java.lang.Exception e)
Notification of Exceptions and / or transfer completion by Sonic-managed thread.
- Specified by:
onChannelStatus
in interfaceprogress.message.jclient.ChannelListener
-
doProduce
public void doProduce(AdaptrisMessage msg, java.lang.String queueName) throws ProduceException
- Specified by:
doProduce
in classProduceOnlyProducerImp
- Throws:
ProduceException
-
getConfig
public SendChannelConfig getConfig()
Returns the
SendChannelConfig
to use.- Returns:
- the
SendChannelConfig
to use
-
setConfig
public void setConfig(SendChannelConfig cfg)
Sets the
LargeMessageConfig
to use. May not be null.- Parameters:
cfg
- theLargeMessageConfig
to use
-
getMessageType
public SonicHelper.MessageType getMessageType()
-
setMessageType
public void setMessageType(SonicHelper.MessageType messageType)
Set the type of message to initial send when creating the channel.This is only included for completeness, as the message only wraps the underlying RecoverableFileChannel
- Parameters:
messageType
- the message type, defaults to TextMessage.- See Also:
Message.setChannel(Channel)
-
messageType
public SonicHelper.MessageType messageType()
-
withQueue
public LargeMessageProducer withQueue(java.lang.String s)
-
endpoint
public java.lang.String endpoint(AdaptrisMessage msg) throws ProduceException
- Specified by:
endpoint
in classAdaptrisMessageProducerImp
- Throws:
ProduceException
-
getQueue
public java.lang.String getQueue()
the initial SonicMQ Queue that we use to initiate the large message transfer.
-
setQueue
public void setQueue(java.lang.String queue)
the initial SonicMQ Queue that we use to initiate the large message transfer.
-
-