[ 
https://issues.apache.org/jira/browse/MNG-5661?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold updated MNG-5661:
---------------------------------------
    Issue Type: Improvement  (was: New Feature)

> Make MavenProject instances immutable after initial construction
> ----------------------------------------------------------------
>
>                 Key: MNG-5661
>                 URL: https://issues.apache.org/jira/browse/MNG-5661
>             Project: Maven
>          Issue Type: Improvement
>            Reporter: Jason van Zyl
>            Priority: Major
>         Attachments: Maven-Reactor-Dump.png
>
>
> When a MavenProject is initially constructed it is not immutable  and 
> requires subsequent mutation to be complete in different circumstance. This 
> makes the logic in MavenProject complex and makes MavenProject hard to 
> understand. We need to move toward being complete and immutable after 
> construction. 
> This not being the case has a number of consequences two of which are:
> 1) Components are required in MavenProject in order to lazily construct 
> certain values. This complicates MavenProject when it simply should be a 
> configuration, or data. The logic to construct anything should be moved to 
> the ProjectBuilder, take the small hit in performance, and all construction 
> should happen up-front.
> 2) The lifecycle needs to be executed in order for a MavenProject instance to 
> be fully populated with respect to source directories and project resources. 
> This makes it particularly hard for systems like IDEs to integrate without 
> resorting to weird tricks to figure out generated source directories without 
> executing Maven itself.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to