Add an ArtifactManager to allows unified managing of artifacts #596
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Caching can greatly improve performance, basically P2 has two concepts of where caching can occur, the transport and artifacts that can originate from different sources. Currently there is only a CacheManger for handling the first case and nothing for the second, maybe even more important case. Because of this there are different approaches out in the wild e.g. PDE Bundle Pools, Oomph shared P2 pools, and Tycho is using its own cache in the m2 repository, but all of them suffer from the fact that there is no real convenient entry point so different things needs to be enhanced an managed.
This now adds a new abstraction service the ArtifactManager that allows to intercept the process of downloading a logical artifact from a given location and possibly providing an equivalent one that is already present locally. There is also a default implementation that simply delegates to the transport directly as before,