public class FileSplitter extends AbstractMessageSplitter
AbstractMessageSplitter
implementation to split the File
Message payload to lines.
With iterator = true
(defaults to true
) this class produces an Iterator
to process file lines on demand from Iterator.next()
.
Otherwise a List
of all lines is returned to the to further
AbstractMessageSplitter.handleRequestMessage(org.springframework.messaging.Message<?>)
process.
Can accept String
as file path, File
, Reader
or InputStream
as payload type.
All other types are ignored and returned to the AbstractMessageSplitter
as is.
AbstractReplyProducingMessageHandler.RequestHandler
messagingTemplate
logger
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
FileSplitter()
Construct a splitter where the
splitMessage(Message) method returns
an iterator and the file is read line-by-line during iteration. |
FileSplitter(boolean iterator)
Construct a splitter where the
splitMessage(Message) method returns
an iterator, and the file is read line-by-line during iteration, or a list
of lines from the file. |
Modifier and Type | Method and Description |
---|---|
void |
setCharset(Charset charset)
Set the charset to be used when reading the file, when something other than the default
charset is required.
|
protected Object |
splitMessage(Message<?> message)
Subclasses must override this method to split the received Message.
|
getComponentType, handleRequestMessage, produceOutput, setApplySequence, shouldCopyRequestHeaders
doInit, doInvokeAdvisedRequestHandler, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReply
getOutputChannel, sendOutputs, setChannelResolver, setOutputChannel, setOutputChannelName, setSendTimeout, shouldSplitOutput
getOrder, handleMessage, setOrder, setShouldTrack
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getComponentName, getConversionService, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setComponentName, setConversionService, setMessageBuilderFactory, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getComponentName
public FileSplitter()
splitMessage(Message)
method returns
an iterator and the file is read line-by-line during iteration.public FileSplitter(boolean iterator)
splitMessage(Message)
method returns
an iterator, and the file is read line-by-line during iteration, or a list
of lines from the file.iterator
- true to return an iterator, false to return a list of lines.public void setCharset(Charset charset)
charset
- the charset.protected Object splitMessage(Message<?> message)
AbstractMessageSplitter
splitMessage
in class AbstractMessageSplitter
message
- The message.