gnodet commented on pull request #703:
URL: https://github.com/apache/maven/pull/703#issuecomment-1085591083


   > If we want to use immutable objects, we should use Java Records. We still 
do not have Valhalla ready. The developers often do not understand Java Memory 
Model and there is no guarantee that they would not make a mistake when they 
update any immutable object. The developers usually would not understand why 
ConcurrentLinkedQueue is preferable over ArrayList and `List.copyOf()` is ideal 
https://docs.oracle.com/javase/10/docs/api/java/util/List.html#copyOf(java.util.Collection),
 and so we should use `List.copyOf()` which means that we should switch the 
project to Java 10 - bad luck! Nobody would accept Java 10, I guess.
   > 
   > The immutable object should be fetched with data via a builder in 
constructor. `MavenProject and MavenProjectBuilder composition`
   > 
   > ```
   > public record MavenProject(MavenProjectBuilder builder) {
   >  
   >     MavenProject {
   >         dependencies = List.copyOf(builder.getDependencies());
   >         ...
   >         ...
   >         ...
   >     }
   > }
   > ```
   
   Have you had a look at the generated code or are those just general comments 
about java records / immutable objects ?


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to