クラス AbstractInboundFileSynchronizingMessageSource<F>

型パラメーター:
F - ターゲットシステムのファイル型。
実装されたすべてのインターフェース:
AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanLifecycleMessageSource<FileSE>IntegrationPatternNamedComponentIntegrationInboundManagementIntegrationManagementManageableLifecycleMessageSourceManagement
既知の直属サブクラス
FtpInboundFileSynchronizingMessageSourceSftpInboundFileSynchronizingMessageSourceSmbInboundFileSynchronizingMessageSource

public abstract class AbstractInboundFileSynchronizingMessageSource<F> extends AbstractFetchLimitingMessageSource<FileSE> implements ManageableLifecycle
FTP アダプターと SFTP アダプター間の共通ロジックを分解します。リモートファイルシステムをローカルファイルシステムと同期するタスクのアダプターを処理するように拡張できるように設計されています(注: これは、ローカルファイルシステムに一意に存在するリモートファイルシステムへのプッシュファイルを処理しません。リモートファイルシステムからのプル -「受信」アダプターから予想されるとおり)。

基本クラスは、リモートファイルシステムとローカルファイルシステムのディレクトリを起動時に作成するかどうかの構成をサポートします(特定のアダプターに対して「ディレクトリを作成する」とは、当然実装固有です)。

このクラスは、AbstractInboundFileSynchronizer の実装とペアで使用されます。シンクロナイザは、リモートファイルシステムに実際に接続し、新しい FileSE を配信する作業を処理する必要があります。

作成者:
Josh Long, Oleg Zhurakousky, Gary Russell, Artem Bilan, Venil Noronha
  • コンストラクターの詳細

  • メソッドの詳細

    • setAutoCreateLocalDirectory

      public void setAutoCreateLocalDirectory(boolean autoCreateLocalDirectory)
    • setLocalDirectory

      public void setLocalDirectory(FileSE localDirectory)
    • setLocalFilter

      public void setLocalFilter(FileListFilter<FileSE> localFileListFilter)
      同期後にメッセージを生成するファイルを決定するために使用される FileListFilter。これは、同期処理中のファイル(AbstractInboundFileSynchronizer.getTemporaryFileSuffix() を持つファイル)へのアクセスを防止するフィルターと組み合わされます。

      デフォルトは、FileSystemPersistentAcceptOnceFileListFilter で、重複したファイル名(現在の実行中に処理される)をフィルタリングします。

      パラメーター:
      localFileListFilter - ローカルファイルリストフィルター。
    • setUseWatchService

      public void setUseWatchService(boolean useWatchService)
      ローカル FileReadingMessageSource を内部 FileReadingMessageSource.WatchServiceDirectoryScanner を使用するように切り替えます。
      パラメーター:
      useWatchService - true で FileReadingMessageSource.WatchServiceDirectoryScanner に切り替える boolean フラグ。
      導入:
      5.0
    • setScanner

      public void setScanner(DirectoryScanner scanner)
      ローカル FileReadingMessageSource を切り替えて、カスタム DirectoryScanner を使用します。
      パラメーター:
      scanner - 使用する DirectoryScanner
      導入:
      5.0
    • getSynchronizer

      public AbstractInboundFileSynchronizer<F> getSynchronizer()
      基になるシンクロナイザを返します。
      戻り値:
      シンクロナイザー。
      導入:
      5.0.7
    • onInit

      protected void onInit()
      オーバーライド:
      クラス AbstractExpressionEvaluatoronInit 
    • start

      public void start()
      次で指定:
      インターフェース Lifecyclestart 
      次で指定:
      インターフェース ManageableLifecyclestart 
    • stop

      public void stop()
      次で指定:
      インターフェース Lifecyclestop 
      次で指定:
      インターフェース ManageableLifecyclestop 
    • isRunning

      public boolean isRunning()
      次で指定:
      インターフェース LifecycleisRunning 
      次で指定:
      インターフェース ManageableLifecycleisRunning 
    • doReceive

      public final AbstractIntegrationMessageBuilder<FileSE> doReceive(int maxFetchSize)
      ファイルソースからポーリングします。結果が null でない場合は、返されます。結果が null の場合は、リモートディレクトリとの同期を試みて、ファイルソースに入力します。最大で、maxFetchSize ファイルがフェッチされます。次に、ファイルソースを再度ポーリングして、null かどうかに関係なく結果を返します。
      次で指定:
      クラス AbstractFetchLimitingMessageSource<FileSE>doReceive 
      パラメーター:
      maxFetchSize - 取得するファイルの最大数
      戻り値:
      返された値。