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>
Type Parameters:
F - the file type.
All Implemented Interfaces:
org.reactivestreams.Subscriber<org.springframework.messaging.Message<?>>, 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.ApplicationContextAware, org.springframework.core.Ordered, org.springframework.integration.context.ExpressionCapable, org.springframework.integration.context.Orderable, org.springframework.integration.IntegrationPattern, org.springframework.integration.support.context.NamedComponent, org.springframework.integration.support.management.IntegrationManagement, org.springframework.integration.support.management.TrackableComponent, org.springframework.messaging.MessageHandler, reactor.core.CoreSubscriber<org.springframework.messaging.Message<?>>

public class FileTransferringMessageHandler<F> extends org.springframework.integration.handler.AbstractMessageHandler
A MessageHandler implementation that transfers files to a remote server.
Since:
2.0
  • 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
    Modifier and Type
    Field
    Description
    protected final RemoteFileTemplate<F>
     

    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
     
     
     
  • 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
     
    protected void
    handleMessageInternal(org.springframework.messaging.Message<?> message)
     
    boolean
     
    protected boolean
     
    protected void
     
    void
    setAutoCreateDirectory(boolean autoCreateDirectory)
    A boolean 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
    String setter for Spring XML convenience.
    void
    Set the file name generator used to generate the remote filename to be used when transferring files to the remote system.
    void
    setRemoteDirectoryExpression(org.springframework.expression.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(org.springframework.expression.Expression temporaryRemoteDirectoryExpression)
    Specify a remote directory path SpEL expression.
    void
    setTemporaryRemoteDirectoryExpressionString(String temporaryRemoteDirectoryExpression)
    Specify a remote directory path SpEL expression.
    void
    setUseTemporaryFileName(boolean useTemporaryFileName)
    A boolean flag to use temporary files names or not.

    Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler

    handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConvention

    Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport

    buildSendTimer, destroy, getComponentType, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, 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, 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 reactor.core.CoreSubscriber

    currentContext

    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

      public FileTransferringMessageHandler(SessionFactory<F> sessionFactory)
    • FileTransferringMessageHandler

      public FileTransferringMessageHandler(RemoteFileTemplate<F> remoteFileTemplate)
    • FileTransferringMessageHandler

      public FileTransferringMessageHandler(RemoteFileTemplate<F> remoteFileTemplate, FileExistsMode mode)
  • Method Details

    • setAutoCreateDirectory

      public void setAutoCreateDirectory(boolean autoCreateDirectory)
      A boolean flag to indicate automatically create the directory or not.
      Parameters:
      autoCreateDirectory - true to automatically create the directory.
      See Also:
    • setRemoteFileSeparator

      public void setRemoteFileSeparator(String remoteFileSeparator)
      Specify a remote file separator symbol.
      Parameters:
      remoteFileSeparator - the remote file separator.
      See Also:
    • setRemoteDirectoryExpression

      public void setRemoteDirectoryExpression(org.springframework.expression.Expression remoteDirectoryExpression)
      Specify a remote directory path SpEL expression.
      Parameters:
      remoteDirectoryExpression - the remote directory expression
      See Also:
    • setRemoteDirectoryExpressionString

      public void setRemoteDirectoryExpressionString(String remoteDirectoryExpression)
      Specify a remote directory path SpEL expression.
      Parameters:
      remoteDirectoryExpression - the remote directory expression
      Since:
      4.3.13
      See Also:
    • setTemporaryRemoteDirectoryExpression

      public void setTemporaryRemoteDirectoryExpression(org.springframework.expression.Expression temporaryRemoteDirectoryExpression)
      Specify a remote directory path SpEL expression.
      Parameters:
      temporaryRemoteDirectoryExpression - the temporary remote directory expression
      See Also:
    • setTemporaryRemoteDirectoryExpressionString

      public void setTemporaryRemoteDirectoryExpressionString(String temporaryRemoteDirectoryExpression)
      Specify a remote directory path SpEL expression.
      Parameters:
      temporaryRemoteDirectoryExpression - the temporary remote directory expression
      Since:
      4.3.13
      See Also:
    • getTemporaryFileSuffix

      protected String getTemporaryFileSuffix()
    • isUseTemporaryFileName

      protected boolean isUseTemporaryFileName()
    • setUseTemporaryFileName

      public void setUseTemporaryFileName(boolean useTemporaryFileName)
      A boolean flag to use temporary files names or not. Defaults to true.
      Parameters:
      useTemporaryFileName - true to use a temporary file name.
      See Also:
    • setFileNameGenerator

      public 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. Default DefaultFileNameGenerator.
      Parameters:
      fileNameGenerator - the file name generator.
      See Also:
    • setCharset

      public void setCharset(String charset)
      Set the charset to use when converting String payloads to bytes as the content of the remote file. Default UTF-8.
      Parameters:
      charset - the charset.
      See Also:
    • setTemporaryFileSuffix

      public void setTemporaryFileSuffix(String temporaryFileSuffix)
      Set the temporary suffix to use when transferring files to the remote system. Default ".writing".
      Parameters:
      temporaryFileSuffix - the temporary file suffix.
      See Also:
    • setChmodOctal

      public void setChmodOctal(String chmod)
      String setter for Spring XML convenience.
      Parameters:
      chmod - permissions as an octal string e.g "600";
      Since:
      4.3
      See Also:
    • 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()
      Overrides:
      onInit in class org.springframework.integration.context.IntegrationObjectSupport
    • handleMessageInternal

      protected void handleMessageInternal(org.springframework.messaging.Message<?> message)
      Specified by:
      handleMessageInternal in class org.springframework.integration.handler.AbstractMessageHandler
    • doChmod

      protected void doChmod(RemoteFileTemplate<F> remoteFileTemplate, String path, int chmod)
      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