Features are extensions for transfer managers, such as path awareness, transaction awareness or retriability.
The central classes in this package are the
to mark feature annotations,
to provide additional methods to a feature, and
to wrap the normal transfer manager with the feature's functionality.
Interface Summary Interface Description FeatureExtensionMarker interface to identify extensions for
FeatureTransferManagerFeature transfer managers extend the functionality of regular
TransferManagersby adding special behavior (such as path awareness, transaction awareness or retriability).
Class Summary Class Description PathAwareFeatureTransferManagerThe 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 ReadAfterWriteConsistentFeatureTransferManagerThe ReadWriteConsistentFeatureTransferManager waits specific amount of time after
ReadAfterWriteConsistentFeatureTransferManager.move(RemoteFile, RemoteFile)operations because some storage backends do no guarantee that a file immediately exists after creation.
RetriableFeatureTransferManagerThe retriable transfer manager implements a simple try-sleep-retry mechanism for regular
TransactionAwareFeatureTransferManagerThe TransactionAwareTransferManager adds all functionality regarding transactions to existing transfer managers.
Annotation Types Summary Annotation Type Description FeatureAnnotation to identify and configure
PathAwareFeature annotation to mark a transfer manager of transfer plugins that need to be sub-foldered. ReadAfterWriteConsistentSome 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.
RetriableFeature annotation to make a transfer manager more reliable by making its core methods retriable. TransactionAware