This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch MNG-7600
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 20cf9ce31024c5251523cca43acac0fac2e1a1fe
Author: Slawomir Jaranowski <s.jaranow...@gmail.com>
AuthorDate: Fri Nov 18 21:25:13 2022 +0100

    [MNG-7600] LocalRepositoryManager is created to early
    
    LocalRepositoryManager needs configurations from RepositorySystemSession
    so must be created after session configuration is finished.
---
 .../DefaultRepositorySystemSessionFactory.java     | 47 ++++++++++++----------
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
 
b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index 7908c88db..9c2980df2 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -174,27 +174,6 @@ public class DefaultRepositorySystemSessionFactory
 
         session.setArtifactTypeRegistry( 
RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ) );
 
-        LocalRepository localRepo = new LocalRepository( 
request.getLocalRepository().getBasedir() );
-
-        if ( request.isUseLegacyLocalRepository() )
-        {
-            try
-            {
-                session.setLocalRepositoryManager( 
simpleLocalRepoMgrFactory.newInstance( session, localRepo ) );
-                logger.info( "Disabling enhanced local repository: using 
legacy is strongly discouraged to ensure"
-                                 + " build reproducibility." );
-            }
-            catch ( NoLocalRepositoryManagerException e )
-            {
-                logger.error( "Failed to configure legacy local repository: 
falling back to default" );
-                session.setLocalRepositoryManager( 
repoSystem.newLocalRepositoryManager( session, localRepo ) );
-            }
-        }
-        else
-        {
-            session.setLocalRepositoryManager( 
repoSystem.newLocalRepositoryManager( session, localRepo ) );
-        }
-
         session.setWorkspaceReader(
                 request.getWorkspaceReader() != null ? 
request.getWorkspaceReader() : workspaceRepository );
 
@@ -309,6 +288,8 @@ public class DefaultRepositorySystemSessionFactory
         mavenRepositorySystem.injectProxy( session, 
request.getPluginArtifactRepositories() );
         mavenRepositorySystem.injectAuthentication( session, 
request.getPluginArtifactRepositories() );
 
+        setupLocalRepositoryManager( request, session );
+
         if ( Features.buildConsumer( request.getUserProperties() ).isActive() )
         {
             session.setFileTransformerManager( a -> 
getTransformersForArtifact( a, session.getData() ) );
@@ -317,6 +298,30 @@ public class DefaultRepositorySystemSessionFactory
         return session;
     }
 
+    private void setupLocalRepositoryManager( MavenExecutionRequest request, 
DefaultRepositorySystemSession session )
+    {
+        LocalRepository localRepo = new LocalRepository( 
request.getLocalRepository().getBasedir() );
+
+        if ( request.isUseLegacyLocalRepository() )
+        {
+            try
+            {
+                session.setLocalRepositoryManager( 
simpleLocalRepoMgrFactory.newInstance( session, localRepo ) );
+                logger.info( "Disabling enhanced local repository: using 
legacy is strongly discouraged to ensure"
+                                 + " build reproducibility." );
+            }
+            catch ( NoLocalRepositoryManagerException e )
+            {
+                logger.error( "Failed to configure legacy local repository: 
falling back to default" );
+                session.setLocalRepositoryManager( 
repoSystem.newLocalRepositoryManager( session, localRepo ) );
+            }
+        }
+        else
+        {
+            session.setLocalRepositoryManager( 
repoSystem.newLocalRepositoryManager( session, localRepo ) );
+        }
+    }
+
     private Map<?, ?> getPropertiesFromRequestedProfiles( 
MavenExecutionRequest request )
     {
 

Reply via email to