Overview
Local repository performs several functions:
- contributes artifacts to the local builds (repository function)
- stores locally built artifacts (install function)
- caches remote artifacts for faster access (caching function)
Metadata problem
In order to fulfill repository function, local repo does not need any metadata. File system access is fast enough to find binaries by GAV. But when binary is not found, or it is a "moving target" - snapshot or version range query, repository needs metadata in order to decide further action: return current binary or delegate to remote repositories.
Currently we have a big mess for local repo metadata. I tried to capture that in MERCURY-5. To re-iterate the problems:
- there are different ways to capture the same information, most important - remote repo scan timestamp
- there are no means to capture existing classifiers
- there are no means to capture