gnodet commented on code in PR #1391:
URL: https://github.com/apache/maven/pull/1391#discussion_r1466200346


##########
api/maven-api-core/src/main/java/org/apache/maven/api/Artifact.java:
##########
@@ -105,6 +105,14 @@ default String key() {
      */
     boolean isSnapshot();
 
+    /**
+     * The artifact properties.
+     *
+     * @return the artifact properties, never {@code null}
+     */
+    @Nonnull
+    ArtifactProperties getArtifactProperties();

Review Comment:
   > No, `Type` is a property of `Dependency`, no Artifact. What happens is 
that is just an indirection of `Type` -> `properties`. If you think about, 
EVERY Artifact (sans root) have type (as they enter scope as dependencies of 
root).
   
   That's wrong. Artifacts can be resolved without any Type / Dependency at all 
using the `ArtifactResolver`:
   
https://github.com/apache/maven/blob/2788849c37ed4c425eb9532c5e20b17f85cbe396/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolver.java
   
   That's the whole point.  ArtifactCoordinate is used to obtain an Artifact.  
A DependencyCoordinate is used to obtain a Dependency.  `DependencyCoordinate` 
contains `Type` and `Scope`.
   
   If we need some properties on `Artifact`, that's fine, we can define 
`ArtifactProperties` and `DependencyProperties` which extends 
`ArtifactProperties`. The artifact properties should contain only properties 
that are related to an artifact, not its usage (type, scope, etc...).  But my 
understanding is that there's no properties at the moment.  The only one in the 
resolver is the path of the file, which is obtained from the `ArtifactManager`.
   
   > And yes, am looking at Resolver API as it is done well and works. IMO we 
should really just pull a thin layer on top of it for start, that we can refine 
later. But in general, this is how things should work, really.
   
   Well, it works, but it's really confusing around this part.  Things are 
blurred and difficult to understand imho.  The goal was to split things more 
clearly, and adding dependency properties on the artifact goes in the wrong way 
imho.
   



-- 
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

Reply via email to