Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Classes related to TAR handling can be moved into a separate package. Some of those classes (FileAccess, TarReader, TarWriter, TarEntry) contain implementation details but are currently unused from the rest of the code. Access to these classes is currently encapsulated by TarFiles, which makes the refactoring almost straightforward.
The refactoring also involves moving some monitoring interfaces (FileStoreMonitor, IOMonitor) that are supposed to be implemented externally and passed to the TAR subsystem. The TAR subsystem will use the provided implementations to communicate the progress of internal operations. Implementation of those interfaces will stay where they are.
Finally, the refactoring involves moving TarRecovery too. This interface is implemented by the TAR subsystem and is the only reason why TarWriter is exposed to the rest of the code. This problem can be easily solved by introducing a new interface that hides the usage of a TarWriter for the recovery of a TAR entry.