Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package maven for openSUSE:Factory checked 
in at 2022-08-02 22:08:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/maven (Old)
 and      /work/SRC/openSUSE:Factory/.maven.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "maven"

Tue Aug  2 22:08:41 2022 rev:13 rq:991028 version:3.8.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/maven/maven.changes      2022-05-17 
17:24:33.603177867 +0200
+++ /work/SRC/openSUSE:Factory/.maven.new.1533/maven.changes    2022-08-02 
22:08:50.773712696 +0200
@@ -1,0 +2,36 @@
+Mon Jul 25 12:13:39 UTC 2022 - Fridrich Strba <[email protected]>
+
+- Upgrade to upstream version 3.8.6
+  * Bug
+    + [MNG-7432] - [REGRESSION] Resolver session contains
+      non-MavenWorkspaceReader
+    + [MNG-7433] - [REGRESSION] Multiple maven instances working on
+      same source tree can lock each other
+    + [MNG-7441] - Update Version of (optional) Logback to Address
+      CVE-2021-42550, bsc#1193795
+    + [MNG-7448] - Don't ignore bin/ otherwise bin/ in apache-maven
+      module cannot be readded
+    + [MNG-7455] - [REGRESSION] IllegalStateException in
+      SessionScope during guice injection in multithreaded build
+    + [MNG-7459] - Revert MNG-7347 (SessionScoped beans should be
+      singletons for a given session)
+    + [MNG-7467] - [REGRESSION] Compilation failure with relocated
+      transitive dependency
+    + [MNG-7487] - Fix deadlock during forked lifecycle executions
+    + [MNG-7493] - [REGRESSION] Resolving dependencies between
+      submodules fails
+  * New Feature
+    + [MNG-7486] - Create a multiline message helper for boxed log
+      messages
+  * Improvement
+    + [MNG-7445] - to refactor some useless code
+    + [MNG-7476] - Display a warning when an aggregator mojo is
+      locking other mojo executions
+  * Task
+    + [MNG-7466] - Align Assembly Descriptor NS versions
+  * Dependency upgrade
+    + [MNG-7488] - Upgrade SLF4J to 1.7.36
+    + [MNG-7489] - Upgrade JUnit to 4.13.2
+    + [MNG-7490] - Upgrade Plexus Utils to 3.3.1
+
+-------------------------------------------------------------------

Old:
----
  apache-maven-3.8.5-build.tar.xz
  apache-maven-3.8.5-src.tar.gz

New:
----
  apache-maven-3.8.6-build.tar.xz
  apache-maven-3.8.6-src.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ maven.spec ++++++
--- /var/tmp/diff_new_pack.ysnQWK/_old  2022-08-02 22:08:51.421714563 +0200
+++ /var/tmp/diff_new_pack.ysnQWK/_new  2022-08-02 22:08:51.425714575 +0200
@@ -20,7 +20,7 @@
 %global homedir %{_datadir}/%{name}%{?maven_version_suffix}
 %global confdir %{_sysconfdir}/%{name}%{?maven_version_suffix}
 Name:           maven
-Version:        3.8.5
+Version:        3.8.6
 Release:        0
 Summary:        Java project management and project comprehension tool
 # maven itself is ASL 2.0

++++++ apache-maven-3.8.5-build.tar.xz -> apache-maven-3.8.6-build.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/common.xml new/common.xml
--- old/common.xml      2022-05-13 18:30:54.388182459 +0200
+++ new/common.xml      2022-07-25 14:07:31.984875252 +0200
@@ -3,7 +3,7 @@
 <project name="common" basedir=".">
 
   <property file="build.properties"/>
-  <property name="project.version" value="3.8.5"/>
+  <property name="project.version" value="3.8.6"/>
   <property name="project.groupId" value="org.apache.maven"/>
 
   <property name="project.organization.name" value="The Apache Software 
Foundation"/>

++++++ apache-maven-3.8.5-src.tar.gz -> apache-maven-3.8.6-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/DEPENDENCIES 
new/apache-maven-3.8.6/DEPENDENCIES
--- old/apache-maven-3.8.5/DEPENDENCIES 2022-03-05 12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/DEPENDENCIES 2022-06-06 18:16:38.000000000 +0200
@@ -19,7 +19,7 @@
     License: Apache License, Version 2.0  
(http://www.apache.org/licenses/LICENSE-2.0.txt)
   - Plexus Interpolation API 
(http://codehaus-plexus.github.io/plexus-interpolation/) 
org.codehaus.plexus:plexus-interpolation:bundle:1.26
     License: Apache License, Version 2.0  
(http://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Plexus Common Utilities (http://codehaus-plexus.github.io/plexus-utils/) 
org.codehaus.plexus:plexus-utils:jar:3.3.0
+  - Plexus Common Utilities (http://codehaus-plexus.github.io/plexus-utils/) 
org.codehaus.plexus:plexus-utils:jar:3.3.1
     License: Apache License, Version 2.0  
(http://www.apache.org/licenses/LICENSE-2.0.txt)
 
 From: 'Codehaus Plexus' (https://codehaus-plexus.github.io/)
@@ -41,9 +41,9 @@
     License: The Apache Software License, Version 2.0  
(http://www.apache.org/licenses/LICENSE-2.0.txt)
 
 From: 'QOS.ch' (http://www.qos.ch)
-  - JCL 1.2 implemented over SLF4J (http://www.slf4j.org) 
org.slf4j:jcl-over-slf4j:jar:1.7.32
+  - JCL 1.2 implemented over SLF4J (http://www.slf4j.org) 
org.slf4j:jcl-over-slf4j:jar:1.7.36
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.32
+  - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.36
     License: MIT License  (http://www.opensource.org/licenses/mit-license.php)
 
 From: 'The Apache Software Foundation' (https://www.apache.org/)
@@ -53,31 +53,31 @@
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
   - Apache Commons Lang (http://commons.apache.org/proper/commons-lang/) 
org.apache.commons:commons-lang3:jar:3.8.1
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Artifact (https://maven.apache.org/ref/3.8.5/maven-artifact/) 
org.apache.maven:maven-artifact:jar:3.8.5
+  - Maven Artifact (https://maven.apache.org/ref/3.8.6/maven-artifact/) 
org.apache.maven:maven-artifact:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Builder Support 
(https://maven.apache.org/ref/3.8.5/maven-builder-support/) 
org.apache.maven:maven-builder-support:jar:3.8.5
+  - Maven Builder Support 
(https://maven.apache.org/ref/3.8.6/maven-builder-support/) 
org.apache.maven:maven-builder-support:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Compat (https://maven.apache.org/ref/3.8.5/maven-compat/) 
org.apache.maven:maven-compat:jar:3.8.5
+  - Maven Compat (https://maven.apache.org/ref/3.8.6/maven-compat/) 
org.apache.maven:maven-compat:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Core (https://maven.apache.org/ref/3.8.5/maven-core/) 
org.apache.maven:maven-core:jar:3.8.5
+  - Maven Core (https://maven.apache.org/ref/3.8.6/maven-core/) 
org.apache.maven:maven-core:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Embedder (https://maven.apache.org/ref/3.8.5/maven-embedder/) 
org.apache.maven:maven-embedder:jar:3.8.5
+  - Maven Embedder (https://maven.apache.org/ref/3.8.6/maven-embedder/) 
org.apache.maven:maven-embedder:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Model (https://maven.apache.org/ref/3.8.5/maven-model/) 
org.apache.maven:maven-model:jar:3.8.5
+  - Maven Model (https://maven.apache.org/ref/3.8.6/maven-model/) 
org.apache.maven:maven-model:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Model Builder 
(https://maven.apache.org/ref/3.8.5/maven-model-builder/) 
org.apache.maven:maven-model-builder:jar:3.8.5
+  - Maven Model Builder 
(https://maven.apache.org/ref/3.8.6/maven-model-builder/) 
org.apache.maven:maven-model-builder:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Plugin API (https://maven.apache.org/ref/3.8.5/maven-plugin-api/) 
org.apache.maven:maven-plugin-api:jar:3.8.5
+  - Maven Plugin API (https://maven.apache.org/ref/3.8.6/maven-plugin-api/) 
org.apache.maven:maven-plugin-api:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Repository Metadata Model 
(https://maven.apache.org/ref/3.8.5/maven-repository-metadata/) 
org.apache.maven:maven-repository-metadata:jar:3.8.5
+  - Maven Repository Metadata Model 
(https://maven.apache.org/ref/3.8.6/maven-repository-metadata/) 
org.apache.maven:maven-repository-metadata:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Artifact Resolver Provider 
(https://maven.apache.org/ref/3.8.5/maven-resolver-provider/) 
org.apache.maven:maven-resolver-provider:jar:3.8.5
+  - Maven Artifact Resolver Provider 
(https://maven.apache.org/ref/3.8.6/maven-resolver-provider/) 
org.apache.maven:maven-resolver-provider:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Settings (https://maven.apache.org/ref/3.8.5/maven-settings/) 
org.apache.maven:maven-settings:jar:3.8.5
+  - Maven Settings (https://maven.apache.org/ref/3.8.6/maven-settings/) 
org.apache.maven:maven-settings:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven Settings Builder 
(https://maven.apache.org/ref/3.8.5/maven-settings-builder/) 
org.apache.maven:maven-settings-builder:jar:3.8.5
+  - Maven Settings Builder 
(https://maven.apache.org/ref/3.8.6/maven-settings-builder/) 
org.apache.maven:maven-settings-builder:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
-  - Maven SLF4J Simple Provider 
(https://maven.apache.org/ref/3.8.5/maven-slf4j-provider/) 
org.apache.maven:maven-slf4j-provider:jar:3.8.5
+  - Maven SLF4J Simple Provider 
(https://maven.apache.org/ref/3.8.6/maven-slf4j-provider/) 
org.apache.maven:maven-slf4j-provider:jar:3.8.6
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
   - Maven Artifact Resolver API 
(https://maven.apache.org/resolver/maven-resolver-api/) 
org.apache.maven.resolver:maven-resolver-api:jar:1.6.3
     License: Apache License, Version 2.0  
(https://www.apache.org/licenses/LICENSE-2.0.txt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/Jenkinsfile 
new/apache-maven-3.8.6/Jenkinsfile
--- old/apache-maven-3.8.5/Jenkinsfile  2022-03-05 12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/Jenkinsfile  2022-06-06 18:16:38.000000000 +0200
@@ -41,7 +41,7 @@
         def MAVEN_GOAL='verify'
 
         stage('Configure deploy') {
-           if (env.BRANCH_NAME == 'master'){
+           if (env.BRANCH_NAME in ['master', 'maven-3.8.x', 'maven-3.9.x']){
                MAVEN_GOAL='deploy'
            }
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/apache-maven/pom.xml 
new/apache-maven-3.8.6/apache-maven/pom.xml
--- old/apache-maven-3.8.5/apache-maven/pom.xml 2022-03-05 12:30:01.000000000 
+0100
+++ new/apache-maven-3.8.6/apache-maven/pom.xml 2022-06-06 18:16:38.000000000 
+0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>apache-maven</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt
 
new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt
--- 
old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt
   2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.32.txt
   1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-https://raw.githubusercontent.com/qos-ch/slf4j/v_1.7.32/LICENSE.txt
-
-Copyright (c) 2004-2017 QOS.ch
-All rights reserved.
-
-Permission is hereby granted, free  of charge, to any person obtaining
-a  copy  of this  software  and  associated  documentation files  (the
-"Software"), to  deal in  the Software without  restriction, including
-without limitation  the rights to  use, copy, modify,  merge, publish,
-distribute,  sublicense, and/or sell  copies of  the Software,  and to
-permit persons to whom the Software  is furnished to do so, subject to
-the following conditions:
-
-The  above  copyright  notice  and  this permission  notice  shall  be
-included in all copies or substantial portions of the Software.
-
-THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
-EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
-MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt
 
new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt
--- 
old/apache-maven-3.8.5/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/apache-maven-3.8.6/apache-maven/src/main/appended-resources/licenses/MIT-slf4j-api-1.7.36.txt
   2022-06-06 18:16:38.000000000 +0200
@@ -0,0 +1,23 @@
+https://raw.githubusercontent.com/qos-ch/slf4j/v_1.7.32/LICENSE.txt
+
+Copyright (c) 2004-2017 QOS.ch
+All rights reserved.
+
+Permission is hereby granted, free  of charge, to any person obtaining
+a  copy  of this  software  and  associated  documentation files  (the
+"Software"), to  deal in  the Software without  restriction, including
+without limitation  the rights to  use, copy, modify,  merge, publish,
+distribute,  sublicense, and/or sell  copies of  the Software,  and to
+permit persons to whom the Software  is furnished to do so, subject to
+the following conditions:
+
+The  above  copyright  notice  and  this permission  notice  shall  be
+included in all copies or substantial portions of the Software.
+
+THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/apache-maven/src/main/assembly/bin.xml 
new/apache-maven-3.8.6/apache-maven/src/main/assembly/bin.xml
--- old/apache-maven-3.8.5/apache-maven/src/main/assembly/bin.xml       
2022-03-05 12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/bin.xml       
2022-06-06 18:16:38.000000000 +0200
@@ -17,8 +17,8 @@
 under the License.
 -->
 
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-    xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 
http://maven.apache.org/xsd/assembly-2.0.0.xsd";>
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 
http://maven.apache.org/xsd/assembly-2.1.0.xsd";>
   <id>bin</id>
   <formats>
     <format>zip</format>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/apache-maven/src/main/assembly/component.xml 
new/apache-maven-3.8.6/apache-maven/src/main/assembly/component.xml
--- old/apache-maven-3.8.5/apache-maven/src/main/assembly/component.xml 
2022-03-05 12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/component.xml 
2022-06-06 18:16:38.000000000 +0200
@@ -16,8 +16,8 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<component xmlns="http://maven.apache.org/ASSEMBLY-COMPONENT/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY-COMPONENT/2.0.0 
http://maven.apache.org/xsd/assembly-component-2.0.0.xsd";>
+<component xmlns="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0 
http://maven.apache.org/xsd/assembly-component-2.1.0.xsd";>
   <dependencySets>
     <dependencySet>
       <useProjectArtifact>false</useProjectArtifact>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/apache-maven/src/main/assembly/dir.xml 
new/apache-maven-3.8.6/apache-maven/src/main/assembly/dir.xml
--- old/apache-maven-3.8.5/apache-maven/src/main/assembly/dir.xml       
2022-03-05 12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/dir.xml       
2022-06-06 18:16:38.000000000 +0200
@@ -17,8 +17,8 @@
 under the License.
 -->
 
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-    xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 
http://maven.apache.org/xsd/assembly-2.0.0.xsd";>
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 
http://maven.apache.org/xsd/assembly-2.1.0.xsd";>
   <id>dir</id>
   <formats>
     <format>dir</format>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/apache-maven/src/main/assembly/src.xml 
new/apache-maven-3.8.6/apache-maven/src/main/assembly/src.xml
--- old/apache-maven-3.8.5/apache-maven/src/main/assembly/src.xml       
2022-03-05 12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/apache-maven/src/main/assembly/src.xml       
2022-06-06 18:16:38.000000000 +0200
@@ -17,8 +17,8 @@
 under the License.
 -->
 
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 
http://maven.apache.org/xsd/assembly-2.0.0.xsd";>
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 
http://maven.apache.org/xsd/assembly-2.1.0.xsd";>
   <id>src</id>
   <formats>
     <format>zip</format>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/doap_Maven.rdf 
new/apache-maven-3.8.6/doap_Maven.rdf
--- old/apache-maven-3.8.5/doap_Maven.rdf       2022-03-05 12:30:01.000000000 
+0100
+++ new/apache-maven-3.8.6/doap_Maven.rdf       2022-06-06 18:16:38.000000000 
+0200
@@ -33,6 +33,15 @@
     <release>
       <Version>
         <name>Latest stable release</name>
+        <created>2022-03-05</created>
+        <revision>3.8.5</revision>
+        
<file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.zip</file-release>
+        
<file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz</file-release>
+        
<file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/source/apache-maven-3.8.5-src.zip</file-release>
+        
<file-release>http://archive.apache.org/dist/maven/maven-3/3.8.5/source/apache-maven-3.8.5-src.tar.gz</file-release>
+      </Version>
+      <Version>
+        <name>Apache Maven 3.8.4</name>
         <created>2021-11-14</created>
         <revision>3.8.4</revision>
         
<file-release>http://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.zip</file-release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-artifact/pom.xml 
new/apache-maven-3.8.6/maven-artifact/pom.xml
--- old/apache-maven-3.8.5/maven-artifact/pom.xml       2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-artifact/pom.xml       2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-artifact</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-builder-support/pom.xml 
new/apache-maven-3.8.6/maven-builder-support/pom.xml
--- old/apache-maven-3.8.5/maven-builder-support/pom.xml        2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-builder-support/pom.xml        2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-builder-support</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-compat/pom.xml 
new/apache-maven-3.8.6/maven-compat/pom.xml
--- old/apache-maven-3.8.5/maven-compat/pom.xml 2022-03-05 12:30:01.000000000 
+0100
+++ new/apache-maven-3.8.6/maven-compat/pom.xml 2022-06-06 18:16:38.000000000 
+0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-compat</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-core/pom.xml 
new/apache-maven-3.8.6/maven-core/pom.xml
--- old/apache-maven-3.8.5/maven-core/pom.xml   2022-03-05 12:30:01.000000000 
+0100
+++ new/apache-maven-3.8.6/maven-core/pom.xml   2022-06-06 18:16:38.000000000 
+0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-core</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
  2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
  2022-06-06 18:16:38.000000000 +0200
@@ -40,6 +40,7 @@
 import org.apache.maven.execution.ProjectDependencyGraph;
 import org.apache.maven.graph.GraphBuilder;
 import org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory;
+import org.apache.maven.internal.aether.MavenChainedWorkspaceReader;
 import org.apache.maven.lifecycle.internal.ExecutionEventCatapult;
 import org.apache.maven.lifecycle.internal.LifecycleStarter;
 import org.apache.maven.model.Prerequisites;
@@ -58,7 +59,6 @@
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.WorkspaceReader;
-import org.eclipse.aether.util.repository.ChainedWorkspaceReader;
 
 /**
  * @author Jason van Zyl
@@ -338,9 +338,7 @@
             }
             workspaceReaders.add( workspaceReader );
         }
-        WorkspaceReader[] readers = workspaceReaders.toArray( new 
WorkspaceReader[0] );
-        repoSession.setWorkspaceReader( new ChainedWorkspaceReader( readers ) 
);
-
+        repoSession.setWorkspaceReader( MavenChainedWorkspaceReader.of( 
workspaceReaders ) );
     }
 
     private void afterSessionEnd( Collection<MavenProject> projects, 
MavenSession session )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/MultilineMessageHelper.java
       2022-06-06 18:16:38.000000000 +0200
@@ -0,0 +1,91 @@
+package org.apache.maven.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Helper class to format multiline messages to the console
+ */
+public class MultilineMessageHelper
+{
+
+    private static final int DEFAULT_MAX_SIZE = 65;
+    private static final char BOX_CHAR = '*';
+
+    public static String separatorLine()
+    {
+        StringBuilder sb = new StringBuilder( DEFAULT_MAX_SIZE );
+        repeat( sb, '*', DEFAULT_MAX_SIZE );
+        return sb.toString();
+    }
+
+    public static List<String> format( String... lines )
+    {
+        int size = DEFAULT_MAX_SIZE;
+        int remainder = size - 4; // 4 chars = 2 box_char + 2 spaces
+        List<String> result = new ArrayList<>();
+        StringBuilder sb = new StringBuilder( size );
+        // first line
+        sb.setLength( 0 );
+        repeat( sb, BOX_CHAR, size );
+        result.add( sb.toString() );
+        // lines
+        for ( String line : lines )
+        {
+            sb.setLength( 0 );
+            String[] words = line.split( "\\s+" );
+            for ( String word : words )
+            {
+                if ( sb.length() >= remainder - word.length() - ( sb.length() 
> 0 ? 1 : 0 ) )
+                {
+                    repeat( sb, ' ', remainder - sb.length() );
+                    result.add( BOX_CHAR + " " + sb + " " + BOX_CHAR );
+                    sb.setLength( 0 );
+                }
+                if ( sb.length() > 0 )
+                {
+                    sb.append( ' ' );
+                }
+                sb.append( word );
+            }
+
+            while ( sb.length() < remainder )
+            {
+                sb.append( ' ' );
+            }
+            result.add( BOX_CHAR + " " + sb + " " + BOX_CHAR );
+        }
+        // last line
+        sb.setLength( 0 );
+        repeat( sb, BOX_CHAR, size );
+        result.add( sb.toString() );
+        return result;
+    }
+
+    private static void repeat( StringBuilder sb, char c, int nb )
+    {
+        for ( int i = 0; i < nb; i++ )
+        {
+            sb.append( c );
+        }
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/internal/aether/MavenChainedWorkspaceReader.java
   2022-06-06 18:16:38.000000000 +0200
@@ -0,0 +1,106 @@
+package org.apache.maven.internal.aether;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.repository.internal.MavenWorkspaceReader;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.repository.WorkspaceRepository;
+import org.eclipse.aether.util.repository.ChainedWorkspaceReader;
+
+/**
+ * A maven workspace reader that delegates to a chain of other readers, 
effectively aggregating their contents.
+ */
+public final class MavenChainedWorkspaceReader
+    implements MavenWorkspaceReader
+{
+
+    private ChainedWorkspaceReader delegate;
+
+    private WorkspaceReader[] readers;
+
+    /**
+     * Creates a new workspace reader by chaining the specified readers.
+     * 
+     * @param readers The readers to chain must not be {@code null}.
+     */
+    private MavenChainedWorkspaceReader( WorkspaceReader... readers )
+    {
+        this.delegate = new ChainedWorkspaceReader( readers );
+        this.readers = readers;
+    }
+
+    @Override
+    public Model findModel( Artifact artifact )
+    {
+        for ( WorkspaceReader workspaceReader : readers )
+        {
+            if ( workspaceReader instanceof MavenWorkspaceReader )
+            {
+                Model model = ( (MavenWorkspaceReader) workspaceReader 
).findModel( artifact );
+                if ( model != null )
+                {
+                    return model;
+                }
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public WorkspaceRepository getRepository()
+    {
+        return delegate.getRepository();
+    }
+
+    @Override
+    public File findArtifact( Artifact artifact )
+    {
+        return delegate.findArtifact( artifact );
+    }
+
+    @Override
+    public List<String> findVersions( Artifact artifact )
+    {
+        return delegate.findVersions( artifact );
+    }
+
+    /**
+     * chains a collection of {@link WorkspaceReader}s
+     * @param workspaceReaderCollection the collection of readers, might be 
empty but never <code>null</code>
+     * @return if the collection contains only one item returns the single 
item, otherwise creates a new
+     *         {@link MavenChainedWorkspaceReader} chaining all readers in the 
order of the given collection.
+     */
+    public static WorkspaceReader of( Collection<WorkspaceReader> 
workspaceReaderCollection )
+    {
+        WorkspaceReader[] readers = workspaceReaderCollection.toArray( new 
WorkspaceReader[0] );
+        if ( readers.length == 1 )
+        {
+            return readers[0];
+        }
+        return new MavenChainedWorkspaceReader( readers );
+    }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
     2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
     2022-06-06 18:16:38.000000000 +0200
@@ -90,12 +90,8 @@
 
         // session may be different from rootSession seeded in DefaultMaven
         // explicitly seed the right session here to make sure it is used by 
Guice
-        final boolean scoped = session != rootSession;
-        if ( scoped )
-        {
-            sessionScope.enter();
-            sessionScope.seed( MavenSession.class, session );
-        }
+        sessionScope.enter( reactorContext.getSessionScopeMemento() );
+        sessionScope.seed( MavenSession.class, session );
         try
         {
 
@@ -149,10 +145,7 @@
         }
         finally
         {
-            if ( scoped )
-            {
-                sessionScope.exit();
-            }
+            sessionScope.exit();
 
             session.setCurrentProject( null );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
   2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
   2022-06-06 18:16:38.000000000 +0200
@@ -107,7 +107,8 @@
             ClassLoader oldContextClassLoader = 
Thread.currentThread().getContextClassLoader();
             ReactorBuildStatus reactorBuildStatus = new ReactorBuildStatus( 
session.getProjectDependencyGraph() );
             reactorContext =
-                new ReactorContext( result, projectIndex, 
oldContextClassLoader, reactorBuildStatus );
+                new ReactorContext( result, projectIndex, 
oldContextClassLoader, reactorBuildStatus,
+                                    sessionScope.memento() );
 
             String builderId = session.getRequest().getBuilderId();
             Builder builder = builders.get( builderId );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
       2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
       2022-06-06 18:16:38.000000000 +0200
@@ -24,6 +24,7 @@
 import org.apache.maven.artifact.resolver.filter.CumulativeScopeArtifactFilter;
 import org.apache.maven.execution.ExecutionEvent;
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.internal.MultilineMessageHelper;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
 import org.apache.maven.lifecycle.MissingProjectException;
 import org.apache.maven.plugin.BuildPluginManager;
@@ -40,6 +41,8 @@
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.util.StringUtils;
 import org.eclipse.aether.SessionData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -52,7 +55,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
@@ -71,6 +73,8 @@
 public class MojoExecutor
 {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger( 
MojoExecutor.class );
+
     @Requirement
     private BuildPluginManager pluginManager;
 
@@ -83,7 +87,9 @@
     @Requirement
     private ExecutionEventCatapult eventCatapult;
 
-    private final ReadWriteLock aggregatorLock = new ReentrantReadWriteLock();
+    private final OwnerReentrantReadWriteLock aggregatorLock = new 
OwnerReentrantReadWriteLock();
+
+    private final Map<Thread, MojoDescriptor> mojos = new 
ConcurrentHashMap<>();
 
     public MojoExecutor()
     {
@@ -206,10 +212,7 @@
             }
         }
 
-        try ( ProjectLock lock = new ProjectLock( session, mojoDescriptor, 
aggregatorLock ) )
-        {
-            doExecute( session, mojoExecution, projectIndex, dependencyContext 
);
-        }
+        doExecute( session, mojoExecution, projectIndex, dependencyContext );
     }
 
     /**
@@ -220,20 +223,44 @@
      * TODO: ideally, the builder should take care of the ordering in a 
smarter way
      * TODO: and concurrency issues fixed with MNG-7157
      */
-    private static class ProjectLock implements AutoCloseable
+    private class ProjectLock implements AutoCloseable
     {
         final Lock acquiredAggregatorLock;
-        final Lock acquiredProjectLock;
+        final OwnerReentrantLock acquiredProjectLock;
 
-        ProjectLock( MavenSession session, MojoDescriptor mojoDescriptor, 
ReadWriteLock aggregatorLock )
+        ProjectLock( MavenSession session, MojoDescriptor mojoDescriptor )
         {
+            mojos.put( Thread.currentThread(), mojoDescriptor );
             if ( session.getRequest().getDegreeOfConcurrency() > 1 )
             {
                 boolean aggregator = mojoDescriptor.isAggregator();
                 acquiredAggregatorLock = aggregator ? 
aggregatorLock.writeLock() : aggregatorLock.readLock();
                 acquiredProjectLock = getProjectLock( session );
-                acquiredAggregatorLock.lock();
-                acquiredProjectLock.lock();
+                if ( !acquiredAggregatorLock.tryLock() )
+                {
+                    Thread owner = aggregatorLock.getOwner();
+                    MojoDescriptor ownerMojo = owner != null ? mojos.get( 
owner ) : null;
+                    String str = ownerMojo != null ? " The " + 
ownerMojo.getId() : "An";
+                    String msg = str + " aggregator mojo is already being 
executed "
+                            + "in this parallel build, those kind of mojos 
require exclusive access to "
+                            + "reactor to prevent race conditions. This mojo 
execution will be blocked "
+                            + "until the aggregator mojo is done.";
+                    warn( msg );
+                    acquiredAggregatorLock.lock();
+                }
+                if ( !acquiredProjectLock.tryLock() )
+                {
+                    Thread owner = acquiredProjectLock.getOwner();
+                    MojoDescriptor ownerMojo = owner != null ? mojos.get( 
owner ) : null;
+                    String str = ownerMojo != null ? " The " + 
ownerMojo.getId() : "A";
+                    String msg = str + " mojo is already being executed "
+                            + "on the project " + 
session.getCurrentProject().getGroupId()
+                            + ":" + 
session.getCurrentProject().getArtifactId() + ". "
+                            + "This mojo execution will be blocked "
+                            + "until the mojo is done.";
+                    warn( msg );
+                    acquiredProjectLock.lock();
+                }
             }
             else
             {
@@ -254,13 +281,14 @@
             {
                 acquiredAggregatorLock.unlock();
             }
+            mojos.remove( Thread.currentThread() );
         }
 
         @SuppressWarnings( { "unchecked", "rawtypes" } )
-        private Lock getProjectLock( MavenSession session )
+        private OwnerReentrantLock getProjectLock( MavenSession session )
         {
             SessionData data = session.getRepositorySession().getData();
-            ConcurrentMap<MavenProject, Lock> locks = ( ConcurrentMap ) 
data.get( ProjectLock.class );
+            ConcurrentMap<MavenProject, OwnerReentrantLock> locks = ( 
ConcurrentMap ) data.get( ProjectLock.class );
             // initialize the value if not already done (in case of a 
concurrent access) to the method
             if ( locks == null )
             {
@@ -268,11 +296,11 @@
                 data.set( ProjectLock.class, null, new ConcurrentHashMap<>() );
                 locks = ( ConcurrentMap ) data.get( ProjectLock.class );
             }
-            Lock acquiredProjectLock = locks.get( session.getCurrentProject() 
);
+            OwnerReentrantLock acquiredProjectLock = locks.get( 
session.getCurrentProject() );
             if ( acquiredProjectLock == null )
             {
-                acquiredProjectLock = new ReentrantLock();
-                Lock prev = locks.putIfAbsent( session.getCurrentProject(), 
acquiredProjectLock );
+                acquiredProjectLock = new OwnerReentrantLock();
+                OwnerReentrantLock prev = locks.putIfAbsent( 
session.getCurrentProject(), acquiredProjectLock );
                 if ( prev != null )
                 {
                     acquiredProjectLock = prev;
@@ -282,6 +310,32 @@
         }
     }
 
+    static class OwnerReentrantLock extends ReentrantLock
+    {
+        @Override
+        public Thread getOwner()
+        {
+            return super.getOwner();
+        }
+    }
+
+    static class OwnerReentrantReadWriteLock extends ReentrantReadWriteLock
+    {
+        @Override
+        public Thread getOwner()
+        {
+            return super.getOwner();
+        }
+    }
+
+    private static void warn( String msg )
+    {
+        for ( String s : MultilineMessageHelper.format( msg ) )
+        {
+            LOGGER.warn( s );
+        }
+    }
+
     private void doExecute( MavenSession session, MojoExecution mojoExecution, 
ProjectIndex projectIndex,
                             DependencyContext dependencyContext )
             throws LifecycleExecutionException
@@ -292,8 +346,23 @@
 
         ensureDependenciesAreResolved( mojoDescriptor, session, 
dependencyContext );
 
-        eventCatapult.fire( ExecutionEvent.Type.MojoStarted, session, 
mojoExecution );
+        try ( ProjectLock lock = new ProjectLock( session, mojoDescriptor ) )
+        {
+            doExecute2( session, mojoExecution );
+        }
+        finally
+        {
+            for ( MavenProject forkedProject : forkedProjects )
+            {
+                forkedProject.setExecutionProject( null );
+            }
+        }
+    }
 
+    private void doExecute2( MavenSession session, MojoExecution mojoExecution 
)
+            throws LifecycleExecutionException
+    {
+        eventCatapult.fire( ExecutionEvent.Type.MojoStarted, session, 
mojoExecution );
         try
         {
             try
@@ -314,13 +383,6 @@
 
             throw e;
         }
-        finally
-        {
-            for ( MavenProject forkedProject : forkedProjects )
-            {
-                forkedProject.setExecutionProject( null );
-            }
-        }
     }
 
     public void ensureDependenciesAreResolved( MojoDescriptor mojoDescriptor, 
MavenSession session,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java
     2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java
     2022-06-06 18:16:38.000000000 +0200
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.session.scope.internal.SessionScope;
 
 /**
  * Context that is fixed for the entire reactor build.
@@ -39,13 +40,17 @@
 
     private final ReactorBuildStatus reactorBuildStatus;
 
+    private final SessionScope.Memento sessionScope;
+
     public ReactorContext( MavenExecutionResult result, ProjectIndex 
projectIndex,
-                           ClassLoader originalContextClassLoader, 
ReactorBuildStatus reactorBuildStatus )
+                           ClassLoader originalContextClassLoader, 
ReactorBuildStatus reactorBuildStatus,
+                           SessionScope.Memento sessionScope )
     {
         this.result = result;
         this.projectIndex = projectIndex;
         this.originalContextClassLoader = originalContextClassLoader;
         this.reactorBuildStatus = reactorBuildStatus;
+        this.sessionScope = sessionScope;
     }
 
     public ReactorBuildStatus getReactorBuildStatus()
@@ -68,4 +73,11 @@
         return originalContextClassLoader;
     }
 
+    /**
+     * @since 3.3.0
+     */
+    public SessionScope.Memento getSessionScopeMemento()
+    {
+        return sessionScope;
+    }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
      2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
      2022-06-06 18:16:38.000000000 +0200
@@ -24,6 +24,7 @@
 import org.apache.maven.execution.ExecutionEvent;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.internal.MultilineMessageHelper;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
 import org.apache.maven.lifecycle.LifecycleNotFoundException;
 import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException;
@@ -103,34 +104,35 @@
             final Set<Plugin> unsafePlugins = 
executionPlan.getNonThreadSafePlugins();
             if ( !unsafePlugins.isEmpty() )
             {
-                logger.warn( 
"*****************************************************************" );
-                logger.warn( "* Your build is requesting parallel execution, 
but project      *" );
-                logger.warn( "* contains the following plugin(s) that have 
goals not marked   *" );
-                logger.warn( "* as @threadSafe to support parallel building.   
               *" );
-                logger.warn( "* While this /may/ work fine, please look for 
plugin updates    *" );
-                logger.warn( "* and/or request plugins be made thread-safe.    
               *" );
-                logger.warn( "* If reporting an issue, report it against the 
plugin in        *" );
-                logger.warn( "* question, not against maven-core               
               *" );
-                logger.warn( 
"*****************************************************************" );
+                for ( String s : MultilineMessageHelper.format(
+                        "Your build is requesting parallel execution, but this 
project contains the following "
+                                + "plugin(s) that have goals not marked as 
thread-safe to support parallel execution.",
+                        "While this /may/ work fine, please look for plugin 
updates and/or "
+                                + "request plugins be made thread-safe.",
+                        "If reporting an issue, report it against the plugin 
in question, not against Apache Maven." ) )
+                {
+                    logger.warn( s );
+                }
                 if ( logger.isDebugEnabled() )
                 {
                     final Set<MojoDescriptor> unsafeGoals = 
executionPlan.getNonThreadSafeMojos();
-                    logger.warn( "The following goals are not marked 
@threadSafe in " + project.getName() + ":" );
+                    logger.warn( "The following goals are not marked as 
thread-safe in " + project.getName() + ":" );
                     for ( MojoDescriptor unsafeGoal : unsafeGoals )
                     {
-                        logger.warn( unsafeGoal.getId() );
+                        logger.warn( "  " + unsafeGoal.getId() );
                     }
                 }
                 else
                 {
-                    logger.warn( "The following plugins are not marked 
@threadSafe in " + project.getName() + ":" );
+                    logger.warn( "The following plugins are not marked as 
thread-safe in " + project.getName() + ":" );
                     for ( Plugin unsafePlugin : unsafePlugins )
                     {
-                        logger.warn( unsafePlugin.getId() );
+                        logger.warn( "  " + unsafePlugin.getId() );
                     }
-                    logger.warn( "Enable debug to see more precisely which 
goals are not marked @threadSafe." );
+                    logger.warn( "" );
+                    logger.warn( "Enable debug to see precisely which goals 
are not marked as thread-safe." );
                 }
-                logger.warn( 
"*****************************************************************" );
+                logger.warn( MultilineMessageHelper.separatorLine() );
             }
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
   2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
   2022-06-06 18:16:38.000000000 +0200
@@ -19,16 +19,16 @@
  * under the License.
  */
 
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
 
 import com.google.inject.Key;
 import com.google.inject.OutOfScopeException;
 import com.google.inject.Provider;
 import com.google.inject.Scope;
+import com.google.inject.util.Providers;
 
 /**
  * SessionScope
@@ -36,6 +36,18 @@
 public class SessionScope
     implements Scope
 {
+    /**
+     * @since 3.3.0
+     */
+    public static class Memento
+    {
+        final Map<Key<?>, Provider<?>> seeded;
+
+        Memento( final Map<Key<?>, Provider<?>> seeded )
+        {
+            this.seeded = Collections.unmodifiableMap( new HashMap<>( seeded ) 
);
+        }
+    }
 
     private static final Provider<Object> SEEDED_KEY_PROVIDER = new 
Provider<Object>()
     {
@@ -48,127 +60,110 @@
     /**
      * ScopeState
      */
-    protected static final class ScopeState
+    private static final class ScopeState
     {
-        private final ConcurrentMap<Key<?>, CachingProvider<?>> provided = new 
ConcurrentHashMap<>();
+        private final Map<Key<?>, Provider<?>> seeded = new HashMap<>();
 
-        public <T> void seed( Class<T> clazz, Provider<T> value )
-        {
-            provided.put( Key.get( clazz ), new CachingProvider<>( value ) );
-        }
+        private final Map<Key<?>, Object> provided = new HashMap<>();
+    }
 
-        @SuppressWarnings( "unchecked" )
-        public <T> Provider<T> scope( Key<T> key, final Provider<T> unscoped )
-        {
-            Provider<?> provider = provided.get( key );
-            if ( provider == null )
-            {
-                CachingProvider<?> newValue = new CachingProvider<>( unscoped 
);
-                provider = provided.putIfAbsent( key, newValue );
-                if ( provider == null )
-                {
-                    provider = newValue;
-                }
-            }
-            return ( Provider<T> ) provider;
-        }
+    private final ThreadLocal<LinkedList<ScopeState>> values = new 
ThreadLocal<>();
 
-        public Collection<CachingProvider<?>> providers()
+    public void enter()
+    {
+        LinkedList<ScopeState> stack = values.get();
+        if ( stack == null )
         {
-            return provided.values();
+            stack = new LinkedList<>();
+            values.set( stack );
         }
-
+        stack.addFirst( new ScopeState() );
     }
 
-    private final List<ScopeState> values = new CopyOnWriteArrayList<>();
-
-    public void enter()
+    /**
+     * @since 3.3.0
+     */
+    public void enter( Memento memento )
     {
-        values.add( 0, new ScopeState() );
+        enter();
+        getScopeState().seeded.putAll( memento.seeded );
     }
 
-    protected ScopeState getScopeState()
+    private ScopeState getScopeState()
     {
-        if ( values.isEmpty() )
+        LinkedList<ScopeState> stack = values.get();
+        if ( stack == null || stack.isEmpty() )
         {
-            throw new OutOfScopeException( "Cannot access session scope 
outside of a scoping block" );
+            throw new IllegalStateException();
         }
-        return values.get( 0 );
+        return stack.getFirst();
     }
 
     public void exit()
     {
-        if ( values.isEmpty() )
+        final LinkedList<ScopeState> stack = values.get();
+        if ( stack == null || stack.isEmpty() )
         {
             throw new IllegalStateException();
         }
-        values.remove( 0 );
+        stack.removeFirst();
+        if ( stack.isEmpty() )
+        {
+            values.remove();
+        }
+    }
+
+    /**
+     * @since 3.3.0
+     */
+    public Memento memento()
+    {
+        LinkedList<ScopeState> stack = values.get();
+        return new Memento( stack != null ? stack.getFirst().seeded : 
Collections.<Key<?>, Provider<?>>emptyMap() );
     }
 
     public <T> void seed( Class<T> clazz, Provider<T> value )
     {
-        getScopeState().seed( clazz, value );
+        getScopeState().seeded.put( Key.get( clazz ), value );
     }
 
     public <T> void seed( Class<T> clazz, final T value )
     {
-        seed( clazz, new Provider<T>()
-        {
-            @Override
-            public T get()
-            {
-                return value;
-            }
-        } );
+        getScopeState().seeded.put( Key.get( clazz ), Providers.of( value ) );
     }
 
     public <T> Provider<T> scope( final Key<T> key, final Provider<T> unscoped 
)
     {
-        // Lazy evaluating provider
         return new Provider<T>()
         {
-            @Override
+            @SuppressWarnings( "unchecked" )
             public T get()
             {
-                return getScopeState().scope( key, unscoped ).get();
-            }
-        };
-    }
+                LinkedList<ScopeState> stack = values.get();
+                if ( stack == null || stack.isEmpty() )
+                {
+                    throw new OutOfScopeException( "Cannot access " + key + " 
outside of a scoping block" );
+                }
 
-    /**
-     * CachingProvider
-     * @param <T>
-     */
-    protected static class CachingProvider<T> implements Provider<T>
-    {
-        private final Provider<T> provider;
-        private volatile T value;
+                ScopeState state = stack.getFirst();
 
-        CachingProvider( Provider<T> provider )
-        {
-            this.provider = provider;
-        }
+                Provider<?> seeded = state.seeded.get( key );
 
-        public T value()
-        {
-            return value;
-        }
+                if ( seeded != null )
+                {
+                    return (T) seeded.get();
+                }
 
-        @Override
-        public T get()
-        {
-            if ( value == null )
-            {
-                synchronized ( this )
+                T provided = (T) state.provided.get( key );
+                if ( provided == null && unscoped != null )
                 {
-                    if ( value == null )
-                    {
-                        value = provider.get();
-                    }
+                    provided = unscoped.get();
+                    state.provided.put( key, provided );
                 }
+
+                return provided;
             }
-            return value;
-        }
+        };
     }
 
     @SuppressWarnings( { "unchecked" } )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
--- 
old/apache-maven-3.8.5/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
  2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
  2022-06-06 18:16:38.000000000 +0200
@@ -147,12 +147,8 @@
             // 
---------------------------------------------------------------------------------
             // path = path.replaceAll( "//", "/" );
 
-            return new File( path ).getAbsoluteFile();
-        }
-        else
-        {
-            return new File( path ).getAbsoluteFile();
         }
+        return new File( path ).getAbsoluteFile();
     }
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
 
new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
--- 
old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
      2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
      2022-06-06 18:16:38.000000000 +0200
@@ -4,11 +4,15 @@
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectHelper;
+import org.apache.maven.repository.internal.MavenWorkspaceReader;
+import org.codehaus.plexus.component.annotations.Component;
 
 import java.io.File;
 import java.nio.file.Files;
+import java.util.concurrent.atomic.AtomicReference;
 
 import static java.util.Arrays.asList;
 
@@ -33,6 +37,31 @@
 public class DefaultMavenTest
     extends AbstractCoreMavenComponentTestCase
 {
+    @Component( role = AbstractMavenLifecycleParticipant.class, hint = 
"WsrClassCatcher" )
+    private static final class WsrClassCatcher extends 
AbstractMavenLifecycleParticipant
+    {
+        private final AtomicReference<Class<?>> wsrClassRef = new 
AtomicReference<>( null );
+
+        @Override
+        public void afterProjectsRead( MavenSession session ) throws 
MavenExecutionException
+        {
+            wsrClassRef.set( 
session.getRepositorySession().getWorkspaceReader().getClass() );
+        }
+    }
+
+    public void testEnsureResolverSessionHasMavenWorkspaceReader() throws 
Exception
+    {
+        WsrClassCatcher wsrClassCatcher = ( WsrClassCatcher ) getContainer()
+                .lookup( AbstractMavenLifecycleParticipant.class, 
"WsrClassCatcher" );
+        Maven maven = getContainer().lookup( Maven.class );
+        MavenExecutionRequest request = createMavenExecutionRequest( 
getProject( "simple" ) ).setGoals( asList("validate") );
+
+        MavenExecutionResult result = maven.execute( request );
+
+        Class<?> wsrClass = wsrClassCatcher.wsrClassRef.get();
+        assertTrue( "is null", wsrClass != null );
+        assertTrue( String.valueOf( wsrClass ), 
MavenWorkspaceReader.class.isAssignableFrom( wsrClass ) );
+    }
 
     public void testThatErrorDuringProjectDependencyGraphCreationAreStored()
             throws Exception
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java
 
new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java
--- 
old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/internal/MultilineMessageHelperTest.java
   2022-06-06 18:16:38.000000000 +0200
@@ -0,0 +1,71 @@
+package org.apache.maven.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class MultilineMessageHelperTest
+{
+
+    @Test
+    public void testBuilderCommon()
+    {
+        List<String> msgs = new ArrayList<>();
+        msgs.add( 
"*****************************************************************" );
+        msgs.add( "* Your build is requesting parallel execution, but project  
    *" );
+        msgs.add( "* contains the following plugin(s) that have goals not 
marked   *" );
+        msgs.add( "* as @threadSafe to support parallel building.              
    *" );
+        msgs.add( "* While this /may/ work fine, please look for plugin 
updates    *" );
+        msgs.add( "* and/or request plugins be made thread-safe.               
    *" );
+        msgs.add( "* If reporting an issue, report it against the plugin in    
    *" );
+        msgs.add( "* question, not against maven-core                          
    *" );
+        msgs.add( 
"*****************************************************************" );
+
+        assertEquals( msgs, MultilineMessageHelper.format(
+                "Your build is requesting parallel execution, but project 
contains the following "
+                        + "plugin(s) that have goals not marked as @threadSafe 
to support parallel building.",
+                "While this /may/ work fine, please look for plugin updates 
and/or "
+                        + "request plugins be made thread-safe.",
+                "If reporting an issue, report it against the plugin in 
question, not against maven-core"
+        ) );
+    }
+
+    @Test
+    public void testMojoExecutor()
+    {
+        List<String> msgs = new ArrayList<>();
+        msgs.add( 
"*****************************************************************" );
+        msgs.add( "* An aggregator Mojo is already executing in parallel 
build,    *" );
+        msgs.add( "* but aggregator Mojos require exclusive access to reactor 
to   *" );
+        msgs.add( "* prevent race conditions. This mojo execution will be 
blocked  *" );
+        msgs.add( "* until the aggregator work is done.                        
    *" );
+        msgs.add( 
"*****************************************************************" );
+
+        assertEquals( msgs, MultilineMessageHelper.format(
+                "An aggregator Mojo is already executing in parallel build, 
but aggregator "
+                        + "Mojos require exclusive access to reactor to 
prevent race conditions. This "
+                        + "mojo execution will be blocked until the aggregator 
work is done." ) );
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java
 
new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java
--- 
old/apache-maven-3.8.5/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java
       2022-03-05 12:30:01.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/test/java/org/apache/maven/session/scope/internal/SessionScopeTest.java
       1970-01-01 01:00:00.000000000 +0100
@@ -1,132 +0,0 @@
-package org.apache.maven.session.scope.internal;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import javax.inject.Provider;
-
-import com.google.inject.Key;
-import com.google.inject.OutOfScopeException;
-import org.apache.maven.model.locator.DefaultModelLocator;
-import org.apache.maven.model.locator.ModelLocator;
-import org.apache.maven.plugin.DefaultPluginRealmCache;
-import org.apache.maven.plugin.PluginRealmCache;
-import org.junit.Test;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.fail;
-
-public class SessionScopeTest {
-
-    @Test
-    public void testScope() throws Exception
-    {
-        SessionScope scope = new SessionScope();
-
-        try
-        {
-            scope.seed( ModelLocator.class, new DefaultModelLocator() );
-            fail( "Expected a " + OutOfScopeException.class.getName() + " 
exception to be thrown" );
-        }
-        catch ( OutOfScopeException e )
-        {
-            // expected
-        }
-
-        Provider<ModelLocator> pml = scope.scope( Key.get( 
ModelLocator.class), new DefaultModelLocatorProvider() );
-        assertNotNull( pml );
-        try
-        {
-            pml.get();
-            fail( "Expected a " + OutOfScopeException.class.getName() + " 
exception to be thrown" );
-        }
-        catch ( OutOfScopeException e )
-        {
-            // expected
-        }
-
-        Provider<PluginRealmCache> pmst = scope.scope( Key.get( 
PluginRealmCache.class ), new DefaultPluginRealmCacheProvider() );
-        assertNotNull( pmst );
-
-        scope.enter();
-
-        final DefaultModelLocator dml1 = new DefaultModelLocator();
-        scope.seed( ModelLocator.class, dml1 );
-
-        assertSame( dml1, pml.get() );
-
-        PluginRealmCache mst1 = pmst.get();
-        assertSame( mst1, pmst.get() );
-        Provider<PluginRealmCache> pmst1 = scope.scope( Key.get( 
PluginRealmCache.class ), new DefaultPluginRealmCacheProvider() );
-        assertNotNull( pmst1 );
-        assertSame( mst1, pmst1.get() );
-
-        scope.enter();
-
-        pmst1 = scope.scope( Key.get( PluginRealmCache.class ), new 
DefaultPluginRealmCacheProvider() );
-        assertNotNull( pmst1 );
-        assertNotSame( mst1, pmst1.get() );
-
-        scope.exit();
-
-        assertSame( mst1, pmst.get() );
-
-        scope.exit();
-
-        try
-        {
-            pmst.get();
-            fail( "Expected a " + OutOfScopeException.class.getName() + " 
exception to be thrown" );
-        }
-        catch ( OutOfScopeException e )
-        {
-            // expected
-        }
-        try
-        {
-            scope.seed( ModelLocator.class, new DefaultModelLocator() );
-            fail( "Expected a " + OutOfScopeException.class.getName() + " 
exception to be thrown" );
-        }
-        catch ( OutOfScopeException e )
-        {
-            // expected
-        }
-    }
-
-    private static class DefaultPluginRealmCacheProvider implements 
com.google.inject.Provider<PluginRealmCache>
-    {
-        @Override
-        public PluginRealmCache get()
-        {
-            return new DefaultPluginRealmCache();
-        }
-    }
-
-    private static class DefaultModelLocatorProvider implements 
com.google.inject.Provider<ModelLocator>
-    {
-        @Override
-        public ModelLocator get()
-        {
-            return new DefaultModelLocator();
-        }
-    }
-
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/apache-maven-3.8.5/maven-core/src/test/projects/default-maven/simple/pom.xml
 
new/apache-maven-3.8.6/maven-core/src/test/projects/default-maven/simple/pom.xml
--- 
old/apache-maven-3.8.5/maven-core/src/test/projects/default-maven/simple/pom.xml
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/apache-maven-3.8.6/maven-core/src/test/projects/default-maven/simple/pom.xml
    2022-06-06 18:16:38.000000000 +0200
@@ -0,0 +1,10 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>simple</groupId>
+  <artifactId>simple</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+</project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-embedder/pom.xml 
new/apache-maven-3.8.6/maven-embedder/pom.xml
--- old/apache-maven-3.8.5/maven-embedder/pom.xml       2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-embedder/pom.xml       2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-embedder</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-model/pom.xml 
new/apache-maven-3.8.6/maven-model/pom.xml
--- old/apache-maven-3.8.5/maven-model/pom.xml  2022-03-05 12:30:01.000000000 
+0100
+++ new/apache-maven-3.8.6/maven-model/pom.xml  2022-06-06 18:16:38.000000000 
+0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-model</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-model-builder/pom.xml 
new/apache-maven-3.8.6/maven-model-builder/pom.xml
--- old/apache-maven-3.8.5/maven-model-builder/pom.xml  2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-model-builder/pom.xml  2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-model-builder</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-plugin-api/pom.xml 
new/apache-maven-3.8.6/maven-plugin-api/pom.xml
--- old/apache-maven-3.8.5/maven-plugin-api/pom.xml     2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-plugin-api/pom.xml     2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-plugin-api</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-repository-metadata/pom.xml 
new/apache-maven-3.8.6/maven-repository-metadata/pom.xml
--- old/apache-maven-3.8.5/maven-repository-metadata/pom.xml    2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-repository-metadata/pom.xml    2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-repository-metadata</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-resolver-provider/pom.xml 
new/apache-maven-3.8.6/maven-resolver-provider/pom.xml
--- old/apache-maven-3.8.5/maven-resolver-provider/pom.xml      2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-resolver-provider/pom.xml      2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-resolver-provider</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-settings/pom.xml 
new/apache-maven-3.8.6/maven-settings/pom.xml
--- old/apache-maven-3.8.5/maven-settings/pom.xml       2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-settings/pom.xml       2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-settings</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-settings-builder/pom.xml 
new/apache-maven-3.8.6/maven-settings-builder/pom.xml
--- old/apache-maven-3.8.5/maven-settings-builder/pom.xml       2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-settings-builder/pom.xml       2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-settings-builder</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/maven-slf4j-provider/pom.xml 
new/apache-maven-3.8.6/maven-slf4j-provider/pom.xml
--- old/apache-maven-3.8.5/maven-slf4j-provider/pom.xml 2022-03-05 
12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/maven-slf4j-provider/pom.xml 2022-06-06 
18:16:38.000000000 +0200
@@ -25,7 +25,7 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven</artifactId>
-    <version>3.8.5</version>
+    <version>3.8.6</version>
   </parent>
 
   <artifactId>maven-slf4j-provider</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/apache-maven-3.8.5/pom.xml 
new/apache-maven-3.8.6/pom.xml
--- old/apache-maven-3.8.5/pom.xml      2022-03-05 12:30:01.000000000 +0100
+++ new/apache-maven-3.8.6/pom.xml      2022-06-06 18:16:38.000000000 +0200
@@ -30,7 +30,7 @@
   </parent>
 
   <artifactId>maven</artifactId>
-  <version>3.8.5</version>
+  <version>3.8.6</version>
   <packaging>pom</packaging>
 
   <name>Apache Maven</name>
@@ -52,11 +52,11 @@
     <classWorldsVersion>2.6.0</classWorldsVersion>
     <commonsCliVersion>1.4</commonsCliVersion>
     <commonsLangVersion>3.8.1</commonsLangVersion>
-    <junitVersion>4.12</junitVersion>
+    <junitVersion>4.13.2</junitVersion>
     <mockitoVersion>2.21.0</mockitoVersion>
     <plexusVersion>2.1.0</plexusVersion>
     <plexusInterpolationVersion>1.26</plexusInterpolationVersion>
-    <plexusUtilsVersion>3.3.0</plexusUtilsVersion>
+    <plexusUtilsVersion>3.3.1</plexusUtilsVersion>
     <guiceVersion>4.2.2</guiceVersion>
     <sisuVersion>0.3.5</sisuVersion>
     <wagonVersion>3.5.1</wagonVersion>
@@ -65,7 +65,7 @@
     <modelloVersion>1.11</modelloVersion>
     <jxpathVersion>1.3</jxpathVersion>
     <resolverVersion>1.6.3</resolverVersion>
-    <slf4jVersion>1.7.32</slf4jVersion>
+    <slf4jVersion>1.7.36</slf4jVersion>
     <xmlunitVersion>2.2.1</xmlunitVersion>
     <powermockVersion>1.7.4</powermockVersion>
     
<maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
@@ -76,7 +76,7 @@
     <maven.site.path>ref/3-LATEST</maven.site.path>
     <checkstyle.violation.ignore>None</checkstyle.violation.ignore>
     <checkstyle.excludes>**/package-info.java</checkstyle.excludes>
-    
<project.build.outputTimestamp>2022-03-05T11:30:01Z</project.build.outputTimestamp>
+    
<project.build.outputTimestamp>2022-06-06T16:16:38Z</project.build.outputTimestamp>
   </properties>
 
   <modules>
@@ -100,7 +100,7 @@
     
<connection>scm:git:https://gitbox.apache.org/repos/asf/maven.git</connection>
     
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven.git</developerConnection>
     <url>https://github.com/apache/maven/tree/${project.scm.tag}</url>
-    <tag>maven-3.8.5</tag>
+    <tag>maven-3.8.6</tag>
   </scm>
   <issueManagement>
     <system>jira</system>
@@ -315,7 +315,7 @@
       <dependency>
         <groupId>ch.qos.logback</groupId>
         <artifactId>logback-classic</artifactId>
-        <version>1.2.1</version>
+        <version>1.2.11</version>
         <optional>true</optional>
       </dependency>
       <!--  Wagon -->
@@ -462,6 +462,11 @@
     <pluginManagement>
       <plugins>
         <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>3.10.1</version>
+        </plugin>
+        <plugin>
           <groupId>org.codehaus.plexus</groupId>
           <artifactId>plexus-component-metadata</artifactId>
           <version>${plexusVersion}</version>
@@ -626,13 +631,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>extra-enforcer-rules</artifactId>
-            <version>1.4</version>
-          </dependency>
-        </dependencies>
         <executions>
           <execution>
             <goals>

Reply via email to