Class FileTransferringMessageHandler<F>
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.file.remote.handler.FileTransferringMessageHandler<F>
- All Implemented Interfaces:
org.reactivestreams.Subscriber<Message<?>>
,Aware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,ApplicationContextAware
,Ordered
,ExpressionCapable
,Orderable
,IntegrationPattern
,NamedComponent
,IntegrationManagement
,TrackableComponent
,MessageHandler
,reactor.core.CoreSubscriber<Message<?>>
- Direct Known Subclasses:
FtpMessageHandler
,SftpMessageHandler
public class FileTransferringMessageHandler<F> extends AbstractMessageHandler
A
MessageHandler
implementation that transfers files to a remote server.- Since:
- 2.0
- Author:
- Iwein Fuld, Mark Fisher, Josh Long, Oleg Zhurakousky, David Turanski, Gary Russell, Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields Modifier and Type Field Description protected RemoteFileTemplate<F>
remoteFileTemplate
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
Constructors Constructor Description FileTransferringMessageHandler(RemoteFileTemplate<F> remoteFileTemplate)
FileTransferringMessageHandler(RemoteFileTemplate<F> remoteFileTemplate, FileExistsMode mode)
FileTransferringMessageHandler(SessionFactory<F> sessionFactory)
-
Method Summary
Modifier and Type Method Description protected void
doChmod(RemoteFileTemplate<F> remoteFileTemplate, String path, int chmod)
Set the mode on the remote file after transfer; the default implementation does nothing.protected String
getTemporaryFileSuffix()
protected void
handleMessageInternal(Message<?> message)
boolean
isChmodCapable()
protected boolean
isUseTemporaryFileName()
protected void
onInit()
Subclasses may implement this for initialization logic.void
setAutoCreateDirectory(boolean autoCreateDirectory)
Aboolean
flag to indicate automatically create the directory or not.void
setCharset(String charset)
Set the charset to use when converting String payloads to bytes as the content of the remote file.void
setChmod(int chmod)
Set the file permissions after uploading, e.g.void
setChmodOctal(String chmod)
String setter for Spring XML convenience.void
setFileNameGenerator(FileNameGenerator fileNameGenerator)
Set the file name generator used to generate the remote filename to be used when transferring files to the remote system.void
setRemoteDirectoryExpression(Expression remoteDirectoryExpression)
Specify a remote directory path SpEL expression.void
setRemoteDirectoryExpressionString(String remoteDirectoryExpression)
Specify a remote directory path SpEL expression.void
setRemoteFileSeparator(String remoteFileSeparator)
Specify a remote file separator symbol.void
setTemporaryFileSuffix(String temporaryFileSuffix)
Set the temporary suffix to use when transferring files to the remote system.void
setTemporaryRemoteDirectoryExpression(Expression temporaryRemoteDirectoryExpression)
Specify a remote directory path SpEL expression.void
setTemporaryRemoteDirectoryExpressionString(String temporaryRemoteDirectoryExpression)
Specify a remote directory path SpEL expression.void
setUseTemporaryFileName(boolean useTemporaryFileName)
Aboolean
flag to use temporary files names or not.Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe
Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getComponentType, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAs
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Field Details
-
Constructor Details
-
FileTransferringMessageHandler
-
FileTransferringMessageHandler
-
FileTransferringMessageHandler
public FileTransferringMessageHandler(RemoteFileTemplate<F> remoteFileTemplate, FileExistsMode mode)
-
-
Method Details
-
setAutoCreateDirectory
public void setAutoCreateDirectory(boolean autoCreateDirectory)Aboolean
flag to indicate automatically create the directory or not.- Parameters:
autoCreateDirectory
- true to automatically create the directory.- See Also:
RemoteFileTemplate.setAutoCreateDirectory(boolean)
-
setRemoteFileSeparator
Specify a remote file separator symbol.- Parameters:
remoteFileSeparator
- the remote file separator.- See Also:
RemoteFileTemplate.setRemoteFileSeparator(String)
-
setRemoteDirectoryExpression
Specify a remote directory path SpEL expression.- Parameters:
remoteDirectoryExpression
- the remote directory expression- See Also:
RemoteFileTemplate.setRemoteDirectoryExpression(Expression)
-
setRemoteDirectoryExpressionString
Specify a remote directory path SpEL expression.- Parameters:
remoteDirectoryExpression
- the remote directory expression- Since:
- 4.3.13
- See Also:
setRemoteDirectoryExpression(Expression)
-
setTemporaryRemoteDirectoryExpression
Specify a remote directory path SpEL expression.- Parameters:
temporaryRemoteDirectoryExpression
- the temporary remote directory expression- See Also:
RemoteFileTemplate.setTemporaryRemoteDirectoryExpression(Expression)
-
setTemporaryRemoteDirectoryExpressionString
Specify a remote directory path SpEL expression.- Parameters:
temporaryRemoteDirectoryExpression
- the temporary remote directory expression- Since:
- 4.3.13
- See Also:
setTemporaryRemoteDirectoryExpression(Expression)
-
getTemporaryFileSuffix
-
isUseTemporaryFileName
protected boolean isUseTemporaryFileName() -
setUseTemporaryFileName
public void setUseTemporaryFileName(boolean useTemporaryFileName)Aboolean
flag to use temporary files names or not. Defaults totrue
.- Parameters:
useTemporaryFileName
- true to use a temporary file name.- See Also:
RemoteFileTemplate.setUseTemporaryFileName(boolean)
-
setFileNameGenerator
Set the file name generator used to generate the remote filename to be used when transferring files to the remote system. DefaultDefaultFileNameGenerator
.- Parameters:
fileNameGenerator
- the file name generator.- See Also:
RemoteFileTemplate.setFileNameGenerator(FileNameGenerator)
-
setCharset
Set the charset to use when converting String payloads to bytes as the content of the remote file. DefaultUTF-8
.- Parameters:
charset
- the charset.- See Also:
RemoteFileTemplate.setCharset(String)
-
setTemporaryFileSuffix
Set the temporary suffix to use when transferring files to the remote system. Default ".writing".- Parameters:
temporaryFileSuffix
- the temporary file suffix.- See Also:
RemoteFileTemplate.setTemporaryFileSuffix(String)
-
setChmodOctal
String setter for Spring XML convenience.- Parameters:
chmod
- permissions as an octal string e.g "600";- Since:
- 4.3
- See Also:
setChmod(int)
-
setChmod
public void setChmod(int chmod)Set the file permissions after uploading, e.g. 0600 for owner read/write.- Parameters:
chmod
- the permissions.- Since:
- 4.3
-
isChmodCapable
public boolean isChmodCapable() -
onInit
protected void onInit()Description copied from class:IntegrationObjectSupport
Subclasses may implement this for initialization logic.- Overrides:
onInit
in classIntegrationObjectSupport
-
handleMessageInternal
- Specified by:
handleMessageInternal
in classAbstractMessageHandler
-
doChmod
Set the mode on the remote file after transfer; the default implementation does nothing.- Parameters:
remoteFileTemplate
- the remote file template.path
- the path.chmod
- the chmod to set.- Since:
- 4.3
-