1. When processing GAV that contains multiple timestamped pom files, and the
remove if released option is true, then make sure we only check for release once, not once per
every timestamp snapshot. This reduces the I/O for the Remove Snapshots From Repository task when the remove if released option is checked ( true ).
2. Do not include signature or hash files when checking for the oldest accessed snapshot last requested timestamp. Given each artifact can have upwords of 5 total of these (.asc , .asc.sha1, .asc.md5, .sha1 and .md5 ) and typically always two ( .sha1, .md5 ), this can reduce I/O reading attributes files by a minimum of 66%. This is always a benefit to the Remove Unused Snapshots from Repository task because this task always tries to calculate the days since any snapshot was last requested. It does this by reading attributes files off disk. Avoiding the above files means attributes for these files does not need to be read off disk.
3. When determining the most recent last requested time for the snapshots in the same build number, avoid iterating over the entire GAV collection of files for each artifact to check. By caching the last requested timestamps in the main processing loop, and determining the most recent last requested date on the fly, we can avoid iterating over the entire collection again for each file, when needing to find the most recent last requested for similar snapshots. This has significant performance benefits for the Remove Unused Snapshots from Repository task.