gnodet commented on code in PR #1640: URL: https://github.com/apache/maven/pull/1640#discussion_r1719600158
########## api/maven-api-core/src/main/java/org/apache/maven/api/Artifact.java: ########## @@ -23,76 +23,83 @@ import org.apache.maven.api.annotations.Nonnull; /** - * An artifact points to a resource such as a jar file or war application. + * Pointer to a resolved resource such as a <abbr>JAR</abbr> file or <abbr>WAE</abbr> application. + * {@code Artifact} instances are created when <dfn>resolving</dfn> {@link Artifact} instances. + * Resolving is the process that selects a {@linkplain #getVersion() particular version} + * and downloads the artifact in the local repository. + * The download may be deferred to the first time that the file is needed. * * @since 4.0.0 */ @Experimental @Immutable public interface Artifact { - /** - * Returns a unique identifier for this artifact. + * {@return a unique identifier for this artifact}. * The identifier is composed of groupId, artifactId, extension, classifier, and version. * - * @return the unique identifier + * @see ArtifactCoordinate#getId() */ @Nonnull default String key() { + String c = getClassifier(); return getGroupId() + ':' + getArtifactId() + ':' + getExtension() - + (getClassifier().isEmpty() ? "" : ":" + getClassifier()) + + (c.isEmpty() ? "" : ":" + c) + ':' + getVersion(); } /** - * The groupId of the artifact. + * {@return the group identifier of the artifact}. * - * @return the groupId + * @see ArtifactCoordinate#getGroupId() */ @Nonnull String getGroupId(); /** - * The artifactId of the artifact. + * {@return the identifier of the artifact}. * - * @return the artifactId + * @see ArtifactCoordinate#getArtifactId() */ @Nonnull String getArtifactId(); /** - * The version of the artifact. + * {@return the version of the artifact}. Contrarily to {@link ArtifactCoordinate}, + * each {@code Artifact} is associated to a specific version instead of a range of versions. Review Comment: I forgot that `LATEST` and `RELEASE` are actually deprecated. So we should not document them I think. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org