public abstract class AbstractRemoteFileStreamingMessageSource<F> extends AbstractFetchLimitingMessageSource<java.io.InputStream> implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean
InputStream payload
referencing a remote file.IntegrationManagement.ManagementOverridesEXPRESSION_PARSER, loggerMETER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME| Modifier | Constructor and Description |
|---|---|
protected |
AbstractRemoteFileStreamingMessageSource(RemoteFileTemplate<F> template,
java.util.Comparator<F> comparator) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract java.util.List<AbstractFileInfo<F>> |
asFileInfoList(java.util.Collection<F> files) |
protected void |
doInit()
Subclasses can override to perform initialization - called from
InitializingBean.afterPropertiesSet(). |
protected java.lang.Object |
doReceive()
Subclasses must implement this method.
|
protected java.lang.Object |
doReceive(int maxFetchSize)
Subclasses must implement this method.
|
protected void |
doSetFilter(FileListFilter<F> filter) |
protected RemoteFileTemplate<F> |
getRemoteFileTemplate() |
protected abstract boolean |
isDirectory(F file) |
void |
onInit() |
protected AbstractFileInfo<F> |
poll() |
protected java.lang.String |
remotePath(AbstractFileInfo<F> file) |
protected void |
rollbackFromFileToListEnd(java.util.List<F> filteredFiles,
F file) |
void |
setFileInfoJson(boolean fileInfoJson)
Set to false to add the
FileHeaders.REMOTE_FILE_INFO header to the raw FileInfo. |
void |
setFilter(FileListFilter<F> filter)
Set the filter to be applied to the remote files before transferring.
|
void |
setRemoteDirectory(java.lang.String remoteDirectory)
Specify the full path to the remote directory.
|
void |
setRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression)
Specify an expression that evaluates to the full path to the remote directory.
|
void |
setRemoteFileSeparator(java.lang.String remoteFileSeparator)
Set the remote file separator; default '/'
|
getMaxFetchSize, setMaxFetchSizebuildMessage, getComponentName, getManagedName, getManagedType, getMessageCount, getMessageCountLong, getOverrides, isCountsEnabled, isLoggingEnabled, receive, registerMetricsCaptor, reset, setBeanName, setCountsEnabled, setHeaderExpressions, setLoggingEnabled, setManagedName, setManagedTypeafterPropertiesSet, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, getBeanFactory, getEvaluationContext, getEvaluationContext, getMessageBuilderFactory, setBeanFactory, setConversionServiceclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitafterPropertiesSetgetManagedName, getManagedType, getMessageCount, getMessageCountLong, setCounter, setManagedName, setManagedTypegetOverrides, isCountsEnabled, isLoggingEnabled, registerMetricsCaptor, reset, setCountsEnabled, setLoggingEnabledgetComponentTypeprotected AbstractRemoteFileStreamingMessageSource(RemoteFileTemplate<F> template, java.util.Comparator<F> comparator)
public void setRemoteDirectory(java.lang.String remoteDirectory)
remoteDirectory - The remote directory.public void setRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression)
remoteDirectoryExpression - The remote directory expression.public void setRemoteFileSeparator(java.lang.String remoteFileSeparator)
remoteFileSeparator - the remote file separator.public void setFilter(FileListFilter<F> filter)
filter - the file list filter.protected final void doSetFilter(FileListFilter<F> filter)
public void setFileInfoJson(boolean fileInfoJson)
FileHeaders.REMOTE_FILE_INFO header to the raw FileInfo.
Default is true meaning that common file information properties are provided
in that header as JSON.fileInfoJson - false to set the raw object.protected RemoteFileTemplate<F> getRemoteFileTemplate()
public final void onInit()
onInit in class AbstractExpressionEvaluatorprotected void doInit()
InitializingBean.afterPropertiesSet().protected java.lang.Object doReceive()
AbstractMessageSourcepayload of
type T, but the returned value may also be a Message instance whose payload is of type T;
also can be AbstractIntegrationMessageBuilder which is used for additional headers population.doReceive in class AbstractFetchLimitingMessageSource<java.io.InputStream>protected java.lang.Object doReceive(int maxFetchSize)
AbstractFetchLimitingMessageSourcedoReceive in class AbstractFetchLimitingMessageSource<java.io.InputStream>maxFetchSize - the maximum number of messages to fetch if a fetch is
necessary.protected AbstractFileInfo<F> poll()
protected java.lang.String remotePath(AbstractFileInfo<F> file)
protected void rollbackFromFileToListEnd(java.util.List<F> filteredFiles, F file)
protected abstract java.util.List<AbstractFileInfo<F>> asFileInfoList(java.util.Collection<F> files)
protected abstract boolean isDirectory(F file)