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 ) {