I noticed two points that I propose to change in some BackupRepository implementations and in BackupRepositoryFactory:
1- Two implementations (S3BackupRepository, GCSBackupRepository) compute and verify the checksum of index files being copied. Other implementations do not. => I propose to remove this checksum verification, to simply copy the bytes. First, because it seems to me it is useless to verify the checksum before backup (checking it after restoring seems more useful). Second, because for the encryption module in dev in solr-sandbox, I need to ensure the bytes copied stay encrypted, and the checksum is not verifiable in this case. 2- There is a special logic in BackupRepositoryFactory when creating the TrackingBackupRepository. TrackingBackupRepository delegates to another BackupDirectory, and it is only used for tests. => I propose to introduce FilterBackupRepository to delegate to a BackupDirectory in a more generic way. TrackingBackupRepository would become a FilterBackupRepository. Again, I would use an EncryptionBackupRepository in solr-sandbox to delegate to any BackupRepository, while ensuring copied bytes stay encrypted. I would appreciate any feedback :)