Skip to content

Commit 8fd8a05

Browse files
[MNG-7600] LocalRepositoryManager is created too early
LocalRepositoryManager needs configurations from RepositorySystemSession so must be created after session configuration is finished. (cherry picked from commit b1c1f75)
1 parent ed84933 commit 8fd8a05

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java

+26-22
Original file line numberDiff line numberDiff line change
@@ -132,28 +132,6 @@ else if ( request.isUpdateSnapshots() )
132132

133133
session.setArtifactTypeRegistry( RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ) );
134134

135-
LocalRepository localRepo = new LocalRepository( request.getLocalRepository().getBasedir() );
136-
137-
if ( request.isUseLegacyLocalRepository() )
138-
{
139-
try
140-
{
141-
session.setLocalRepositoryManager( simpleLocalRepoMgrFactory.newInstance( session, localRepo ) );
142-
logger.info( "Disabling enhanced local repository: using legacy is strongly discouraged to ensure"
143-
+ " build reproducibility." );
144-
145-
}
146-
catch ( NoLocalRepositoryManagerException e )
147-
{
148-
logger.error( "Failed to configure legacy local repository: falling back to default" );
149-
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( session, localRepo ) );
150-
}
151-
}
152-
else
153-
{
154-
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( session, localRepo ) );
155-
}
156-
157135
if ( request.getWorkspaceReader() != null )
158136
{
159137
session.setWorkspaceReader( request.getWorkspaceReader() );
@@ -240,9 +218,35 @@ else if ( request.isUpdateSnapshots() )
240218
mavenRepositorySystem.injectProxy( session, request.getPluginArtifactRepositories() );
241219
mavenRepositorySystem.injectAuthentication( session, request.getPluginArtifactRepositories() );
242220

221+
setUpLocalRepositoryManager( request, session );
222+
243223
return session;
244224
}
245225

226+
private void setUpLocalRepositoryManager( MavenExecutionRequest request, DefaultRepositorySystemSession session )
227+
{
228+
LocalRepository localRepo = new LocalRepository( request.getLocalRepository().getBasedir() );
229+
230+
if ( request.isUseLegacyLocalRepository() )
231+
{
232+
try
233+
{
234+
session.setLocalRepositoryManager( simpleLocalRepoMgrFactory.newInstance( session, localRepo ) );
235+
logger.info( "Disabling enhanced local repository: using legacy is strongly discouraged to ensure"
236+
+ " build reproducibility." );
237+
}
238+
catch ( NoLocalRepositoryManagerException e )
239+
{
240+
logger.error( "Failed to configure legacy local repository: falling back to default" );
241+
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( session, localRepo ) );
242+
}
243+
}
244+
else
245+
{
246+
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( session, localRepo ) );
247+
}
248+
}
249+
246250
private String getUserAgent()
247251
{
248252
String version = runtimeInformation.getMavenVersion();

0 commit comments

Comments
 (0)