Package org.syncany.plugins.transfer.features
Provides classes to extend the default
TransferManager
functionality with Features
.
Features are extensions for transfer managers, such as path awareness, transaction awareness or retriability.
The central classes in this package are the Feature
to mark feature annotations, FeatureExtension
to provide additional methods to a feature, and FeatureTransferManager
to wrap the normal transfer manager with the feature's functionality.
-
Interface Summary Interface Description FeatureExtension Marker interface to identify extensions forFeatureTransferManagers
.FeatureTransferManager Feature transfer managers extend the functionality of regularTransferManagers
by adding special behavior (such as path awareness, transaction awareness or retriability).PathAwareFeatureExtension The path aware feature extension must be defined in thePathAware
feature in order to extend aTransferManager
that was marked as 'path aware' with the required methods to manage the subfolders.ReadAfterWriteConsistentFeatureExtension The read write consistent feature extension must be defined in theReadAfterWriteConsistent
feature in order to extend aTransferManager
that was marked as 'read write consistent' with the required methods to verify if a file exists on the remote side. -
Class Summary Class Description PathAwareFeatureTransferManager The path aware transfer manager can be used to extend a backend storage with the ability to add subfolders to the folders with many files (e.g.PathAwareFeatureTransferManager.PathAwareRemoteFileAttributes ReadAfterWriteConsistentFeatureTransferManager The ReadWriteConsistentFeatureTransferManager waits specific amount of time afterReadAfterWriteConsistentFeatureTransferManager.upload(File, RemoteFile)
andReadAfterWriteConsistentFeatureTransferManager.move(RemoteFile, RemoteFile)
operations because some storage backends do no guarantee that a file immediately exists after creation.RetriableFeatureTransferManager The retriable transfer manager implements a simple try-sleep-retry mechanism for regularTransferManager
s.TransactionAwareFeatureTransferManager The TransactionAwareTransferManager adds all functionality regarding transactions to existing transfer managers. -
Annotation Types Summary Annotation Type Description Feature Annotation to identify and configureTransferManager
extensions.PathAware Feature annotation to mark a transfer manager of transfer plugins that need to be sub-foldered.ReadAfterWriteConsistent Some storage backends do not guarantee that a file immediately exists on the remote side after it is uploaded or moved.
This feature handles such cases by relaxing the strong assumption that a file is immediately available after creation due to upload or move operations.Retriable Feature annotation to make a transfer manager more reliable by making its core methods retriable.TransactionAware