[
https://issues.apache.org/jira/browse/MNG-7625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17646703#comment-17646703
]
Slawomir Jaranowski commented on MNG-7625:
------------------------------------------
[~gnodet]
I used {{org.apache.maven.settings.v4.SettingsMerger}} instead of
{{{}org.apache.maven.settings.merge.MavenSettingsMerger{}}}.
{{MavenSettingsMerger}} set {{sourceLevel}} on recessive Settings, this actions
can be done once for the same instance of object.
{{m-invoker-p}} need call merge {{Setings}} many time for each test project, as
{{recessive Settings}} use copy of current {{Settings}} from running
{{{}Session{}}}.
Copy of {{Setings}} is done by {{{}SettingsUtils#copySettings{}}}, where in the
real we have new {{Maven 3 Settings}} with references to old {{Maven 4
Settings}} as delegate.
So {{MavenSettingsMerger#merge}} will change status of delegate object and
finally current Maven Session.
I don't understand what for is {{TrackableBase#SourceLevel}} it look like is
only used by {{MavenSettingsMerger}}
We also have two implementation of merging settings - {{v4.SettingsMerger}} and
old {{MavenSettingsMerger}} - maybe one should be deprecated, and we should use
one implementation.
In m-invoker-p there is a hack for reset {{sourceLevel}}, but now is not
working because real Session is in delegate field:
https://github.com/apache/maven-invoker-plugin/blob/bfb75f9e52e93478dab710bb7243978c06f48d1a/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java#L1580-L1618
> Restore compatibility with Maven 3 - SettingsUtils#merge
> --------------------------------------------------------
>
> Key: MNG-7625
> URL: https://issues.apache.org/jira/browse/MNG-7625
> Project: Maven
> Issue Type: Task
> Affects Versions: 4.0.0-alpha-3
> Reporter: Slawomir Jaranowski
> Assignee: Slawomir Jaranowski
> Priority: Major
>
> Maven 3 has method:
> {code:java}
> void SettingsUtils#merge(org.apache.maven.settings.Settings,
> org.apache.maven.settings.Settings, java.lang.String)
> {code}
> It is used by {{maven-invoker-plugin}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)