Class AbstractRemoteFileStreamingMessageSource<F>
java.lang.Object
org.springframework.integration.util.AbstractExpressionEvaluator
org.springframework.integration.endpoint.AbstractMessageSource<T>
org.springframework.integration.endpoint.AbstractFetchLimitingMessageSource<InputStream>
org.springframework.integration.file.remote.AbstractRemoteFileStreamingMessageSource<F>
- Type Parameters:
F
- The target protocol file type.
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.Lifecycle
,org.springframework.integration.core.MessageSource<InputStream>
,org.springframework.integration.IntegrationPattern
,org.springframework.integration.support.context.NamedComponent
,org.springframework.integration.support.management.IntegrationInboundManagement
,org.springframework.integration.support.management.IntegrationManagement
,org.springframework.integration.support.management.ManageableLifecycle
,org.springframework.integration.support.management.MessageSourceManagement
public abstract class AbstractRemoteFileStreamingMessageSource<F>
extends org.springframework.integration.endpoint.AbstractFetchLimitingMessageSource<InputStream>
implements org.springframework.integration.support.management.ManageableLifecycle
A message source that produces a message with an
InputStream
payload
referencing a remote file.- Since:
- 4.3
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.util.AbstractExpressionEvaluator
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractRemoteFileStreamingMessageSource
(RemoteFileTemplate<? extends F> template, Comparator<? extends F> comparator) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract List<AbstractFileInfo<F>>
asFileInfoList
(Collection<F> files) protected void
doInit()
Subclasses can override to perform initialization - called fromInitializingBean.afterPropertiesSet()
.protected Object
doReceive
(int maxFetchSize) protected final void
doSetFilter
(FileListFilter<F> filterToSet) protected RemoteFileTemplate<? extends F>
protected abstract boolean
isDirectory
(F file) boolean
final void
onInit()
protected AbstractFileInfo<F>
poll()
protected String
remotePath
(AbstractFileInfo<F> file) protected void
rollbackFromFileToListEnd
(List<F> filteredFiles, F file) void
setFileInfoJson
(boolean fileInfoJson) Set to false to add theFileHeaders.REMOTE_FILE_INFO
header to the rawFileInfo
.void
setFilter
(FileListFilter<F> filter) Set the filter to be applied to the remote files before transferring.void
setRemoteDirectory
(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
(String remoteFileSeparator) Set the remote file separator; default '/'.void
start()
void
stop()
Methods inherited from class org.springframework.integration.endpoint.AbstractFetchLimitingMessageSource
doReceive, getMaxFetchSize, setMaxFetchSize
Methods inherited from class org.springframework.integration.endpoint.AbstractMessageSource
buildMessage, destroy, getBeanName, getComponentName, getManagedName, getManagedType, getOverrides, isLoggingEnabled, receive, registerMetricsCaptor, setBeanName, setHeaderExpressions, setLoggingEnabled, setManagedName, setManagedType
Methods inherited from class org.springframework.integration.util.AbstractExpressionEvaluator
afterPropertiesSet, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, getBeanFactory, getEvaluationContext, getEvaluationContext, getMessageBuilderFactory, setBeanFactory, setConversionService
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAs, registerObservationRegistry
Methods inherited from interface org.springframework.integration.core.MessageSource
getIntegrationPatternType
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getComponentType
-
Constructor Details
-
AbstractRemoteFileStreamingMessageSource
protected AbstractRemoteFileStreamingMessageSource(RemoteFileTemplate<? extends F> template, @Nullable Comparator<? extends F> comparator)
-
-
Method Details
-
setRemoteDirectory
Specify the full path to the remote directory.- Parameters:
remoteDirectory
- The remote directory.
-
setRemoteDirectoryExpression
public void setRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression) Specify an expression that evaluates to the full path to the remote directory.- Parameters:
remoteDirectoryExpression
- The remote directory expression.
-
setRemoteFileSeparator
Set the remote file separator; default '/'.- Parameters:
remoteFileSeparator
- the remote file separator.
-
setFilter
Set the filter to be applied to the remote files before transferring.- Parameters:
filter
- the file list filter.
-
doSetFilter
-
setFileInfoJson
public void setFileInfoJson(boolean fileInfoJson) Set to false to add theFileHeaders.REMOTE_FILE_INFO
header to the rawFileInfo
. Default is true meaning that common file information properties are provided in that header as JSON.- Parameters:
fileInfoJson
- false to set the raw object.- Since:
- 5.0
-
getRemoteFileTemplate
-
onInit
public final void onInit()- Overrides:
onInit
in classorg.springframework.integration.util.AbstractExpressionEvaluator
-
doInit
protected void doInit()Subclasses can override to perform initialization - called fromInitializingBean.afterPropertiesSet()
. -
start
public void start()- Specified by:
start
in interfaceorg.springframework.context.Lifecycle
- Specified by:
start
in interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
stop
public void stop()- Specified by:
stop
in interfaceorg.springframework.context.Lifecycle
- Specified by:
stop
in interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
isRunning
public boolean isRunning()- Specified by:
isRunning
in interfaceorg.springframework.context.Lifecycle
- Specified by:
isRunning
in interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
doReceive
- Specified by:
doReceive
in classorg.springframework.integration.endpoint.AbstractFetchLimitingMessageSource<InputStream>
-
poll
-
remotePath
-
rollbackFromFileToListEnd
-
asFileInfoList
-
isDirectory
-