[ 
https://issues.apache.org/jira/browse/MNG-6575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16751577#comment-16751577
 ] 

Robert Scholte commented on MNG-6575:
-------------------------------------

Is this about immutable or unique+cached? A dependency instance is quite 
complex, has a lot of elements, so uniqueness might be hard. On the other hand, 
an Artifact should be easier to cache, particularly from Artifact Resolver. The 
interface 
[org.apache.maven.artifact.Artifact|https://maven.apache.org/ref/3.6.0/maven-artifact/apidocs/org/apache/maven/artifact/Artifact.html]
 has a lot of methods, but most of them should be marked as deprecated in you 
take a look at the [revisited 
definitions|https://maven.apache.org/shared/maven-artifact-transfer/comparison.html]

> make Dependency immutable
> -------------------------
>
>                 Key: MNG-6575
>                 URL: https://issues.apache.org/jira/browse/MNG-6575
>             Project: Maven
>          Issue Type: Improvement
>          Components: Dependencies, Inheritance and Interpolation
>    Affects Versions: 3.6.0
>            Reporter: Hervé Boutemy
>            Priority: Major
>
> while working on Maven memory consumption issue MNG-6571, once VersionRange 
> is made immutable, memory used was divided by 2: the next big expected win is 
> to make Dependency immutable, which would probably once again divide memory 
> by 2 because the vast majority of time, dependencies (be it in 
> dependencyManagement or base dependencies) are inherited without any 
> modification
> this will require to change 
> [ModelMerger|https://maven.apache.org/ref/3.6.0/maven-model/apidocs/org/apache/maven/model/merge/ModelMerger.html]
>  's {{mergeDependency(Dependency target, Dependency source, boolean 
> sourceDominant, Map<Object,Object> context)}} signature, since is not really 
> an immutable friendly signature
> and also make [Dependency 
> code|https://maven.apache.org/ref/3.6.0/maven-model/apidocs/org/apache/maven/model/Dependency.html]
>  immutable (generated by Modello)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to