You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/11/21 15:45:49 UTC
[maven] branch master updated: [MNG-7600] LocalRepositoryManager is created too early
This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new b1c1f7556 [MNG-7600] LocalRepositoryManager is created too early
b1c1f7556 is described below
commit b1c1f7556d6b66d984c4ed2c0eb723c9b99b38be
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Fri Nov 18 21:25:13 2022 +0100
[MNG-7600] LocalRepositoryManager is created too 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..df013251c 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 )
{