Summary: | [api][repo] Work out IArtifactRepository/IArtifactDescriptor api | ||
---|---|---|---|
Product: | [Eclipse Project] Equinox | Reporter: | Andrew Niefer <aniefer> |
Component: | p2 | Assignee: | Andrew Niefer <aniefer> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | CC: | pascal |
Version: | unspecified | Keywords: | api |
Target Milestone: | 3.6 M6 | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Whiteboard: |
Description
Andrew Niefer
2008-11-07 16:05:43 EST
Making ArtifactDescriptor not API turns out to be a large change. The new proposal is IArtifactDescript#equals and #hashcode will be defined as API. This makes the implementation of these methods independent of the repository implementations. Repository implementations will need to account for this. The proposed implentation uses the artifact key (id & version), the processing steps, and the format property (IArtifactDescriptor.FORMAT). The existing implementation also considers the ArtifactDescriptor.ARTIFACT_REFERENCE property. We will need to review the use of this when removing it from the equals & hashCode. I think IArtifactKey may have the same problem and its implementation class is not API. I have gone ahead and added IArtifactRepository#createArtifactDescriptor to help with publishing in the case when the person publishing needs to set repo specific items on the descriptor, as an example, RepositoryListener sets repository properties for artifact references. I think this is done. Anything else can go in bug 293340 |