laeubi commented on a change in pull request #668: URL: https://github.com/apache/maven/pull/668#discussion_r805199907
########## File path: maven-core/src/main/java/org/apache/maven/DefaultMaven.java ########## @@ -232,25 +232,40 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request, MavenSess return addExceptionToResult( result, e ); } - WorkspaceReader reactorWorkspace; + List<WorkspaceReader> workspaceReaders = new ArrayList<>(); + WorkspaceReader repoWorkspaceReader = repoSession.getWorkspaceReader(); + // + // Desired order of precedence for local artifact repositories + // try { - reactorWorkspace = container.lookup( WorkspaceReader.class, ReactorReader.HINT ); + // 1) Reactor workspace reader + workspaceReaders.add( container.lookup( WorkspaceReader.class, ReactorReader.HINT ) ); } catch ( ComponentLookupException e ) { return addExceptionToResult( result, e ); } - - // - // Desired order of precedence for local artifact repositories - // - // Reactor - // Workspace + if ( repoWorkspaceReader != null ) + { + // 2) Repository system session scoped workspace reader + workspaceReaders.add( repoWorkspaceReader ); + } + for ( WorkspaceReader workspaceReader : getProjectScopedExtensions( session.getProjects(), + WorkspaceReader.class ) ) + { + if ( workspaceReaders.contains( workspaceReader ) ) + { + continue; + } + // 3) .. n) Project scoped workspace reader Review comment: Done ########## File path: maven-core/src/main/java/org/apache/maven/DefaultMaven.java ########## @@ -382,34 +397,50 @@ private void validateLocalRepository( MavenExecutionRequest request ) logger.warn( "Failed to lookup lifecycle participants: " + e.getMessage() ); } - Collection<ClassLoader> scannedRealms = new HashSet<>(); + lifecycleListeners.addAll( getProjectScopedExtensions( projects, + AbstractMavenLifecycleParticipant.class ) ); + } + finally + { + Thread.currentThread().setContextClassLoader( originalClassLoader ); + } Review comment: Done ########## File path: maven-core/src/main/java/org/apache/maven/DefaultMaven.java ########## @@ -232,25 +232,36 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request, MavenSess return addExceptionToResult( result, e ); } - WorkspaceReader reactorWorkspace; + List<WorkspaceReader> workspaceReaders = new ArrayList<>(); + WorkspaceReader repoWorkspaceReader = repoSession.getWorkspaceReader(); + // Desired order of precedence for workspace reader before quiering the local artifact repositories + // 1) Reactor workspace reader try { - reactorWorkspace = container.lookup( WorkspaceReader.class, ReactorReader.HINT ); + workspaceReaders.add( container.lookup( WorkspaceReader.class, ReactorReader.HINT ) ); } catch ( ComponentLookupException e ) { return addExceptionToResult( result, e ); } + // 2) Repository system session scoped workspace reader + if ( repoWorkspaceReader != null ) + { + workspaceReaders.add( repoWorkspaceReader ); + } + // 3) .. n) Project scoped workspace reader Review comment: Done ########## File path: maven-core/src/main/java/org/apache/maven/DefaultMaven.java ########## @@ -369,47 +380,54 @@ private void validateLocalRepository( MavenExecutionRequest request ) { Collection<AbstractMavenLifecycleParticipant> lifecycleListeners = new LinkedHashSet<>(); - ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { - try - { - lifecycleListeners.addAll( container.lookupList( AbstractMavenLifecycleParticipant.class ) ); - } - catch ( ComponentLookupException e ) - { - // this is just silly, lookupList should return an empty list! - logger.warn( "Failed to lookup lifecycle participants: " + e.getMessage() ); - } + lifecycleListeners.addAll( container.lookupList( AbstractMavenLifecycleParticipant.class ) ); + } + catch ( ComponentLookupException e ) + { + // this is just silly, lookupList should return an empty list! + logger.warn( "Failed to lookup lifecycle participants: " + e.getMessage() ); + } + + lifecycleListeners.addAll( getProjectScopedExtensions( projects, AbstractMavenLifecycleParticipant.class ) ); - Collection<ClassLoader> scannedRealms = new HashSet<>(); + return lifecycleListeners; + } + protected <T> Collection<T> getProjectScopedExtensions( Collection<MavenProject> projects, Class<T> role ) Review comment: I copied it over from master to make it even. ########## File path: maven-core/src/main/java/org/apache/maven/DefaultMaven.java ########## @@ -232,25 +232,36 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request, MavenSess return addExceptionToResult( result, e ); } - WorkspaceReader reactorWorkspace; + List<WorkspaceReader> workspaceReaders = new ArrayList<>(); + WorkspaceReader repoWorkspaceReader = repoSession.getWorkspaceReader(); + // Desired order of precedence for workspace reader before quiering the local artifact repositories + // 1) Reactor workspace reader try { - reactorWorkspace = container.lookup( WorkspaceReader.class, ReactorReader.HINT ); + workspaceReaders.add( container.lookup( WorkspaceReader.class, ReactorReader.HINT ) ); } catch ( ComponentLookupException e ) { return addExceptionToResult( result, e ); } + // 2) Repository system session scoped workspace reader Review comment: done ########## File path: maven-core/src/main/java/org/apache/maven/DefaultMaven.java ########## @@ -232,25 +232,36 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request, MavenSess return addExceptionToResult( result, e ); } - WorkspaceReader reactorWorkspace; + List<WorkspaceReader> workspaceReaders = new ArrayList<>(); + WorkspaceReader repoWorkspaceReader = repoSession.getWorkspaceReader(); + // Desired order of precedence for workspace reader before quiering the local artifact repositories Review comment: done ########## File path: maven-core/src/main/java/org/apache/maven/DefaultMaven.java ########## @@ -232,25 +232,36 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request, MavenSess return addExceptionToResult( result, e ); } - WorkspaceReader reactorWorkspace; + List<WorkspaceReader> workspaceReaders = new ArrayList<>(); + WorkspaceReader repoWorkspaceReader = repoSession.getWorkspaceReader(); Review comment: done -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org