-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add an ArtifactManager to allows unified managing of artifacts #590
Conversation
Test Results 365 files - 10 365 suites - 10 40m 51s ⏱️ - 3m 19s For more details on these failures and errors, see this check. Results for commit db39119. ± Comparison against base commit 3a74faa. ♻️ This comment has been updated with latest results. |
bb6ee1c
to
f379008
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks generally fine. I've not looked in great details.
ffadf04
to
02ff25f
Compare
This pull request changes some projects for the first time in this development cycle.
An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch. Git patch
Further information are available in Common Build Issues - Missing version increments. |
ed7f94e
to
94b8ed4
Compare
* | ||
* @since 2.13 | ||
*/ | ||
@Retention(CLASS) | ||
@Target(TYPE) | ||
@ComponentPropertyType | ||
public @interface AgentServicename { | ||
public @interface AgentServiceName { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the change is reasonable, I just wanted to mention that renamings that just change the case of some letters in a file name cause funny side-effects on Windows because the file-system is case-insensitive and then git gets confused.
But one just has to get along with that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As the class is actually new (I just renamed it in the PR for the sake of testing) it hopefully do not confuses windows to much :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I appreciate the improved name. It looks like a typo before. 😕
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,
d1e98e8
to
db39119
Compare
After all the merges and refactoring I recreated the PR from scratch here: |
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.
This also includes a commit from
to add a component property type for the service name that is then used here.