gnodet commented on code in PR #13094:
URL: https://github.com/apache/maven/pull/13094#discussion_r4275965407


##########
impl/maven-core/src/main/java/org/apache/maven/DefaultMaven.java:
##########
@@ -342,14 +355,30 @@ private void setupWorkspaceReader(MavenSession session, 
MavenChainedWorkspaceRea
         // 1) Reactor workspace reader
         WorkspaceReader reactorReader = lookup.lookup(WorkspaceReader.class, 
ReactorReader.HINT);
         workspaceReaders.add(reactorReader);
-        // 2) Repository system session-scoped workspace reader (contains ide 
and exec request reader)
+        // 2) Repository system session-scoped workspace reader (contains ide, 
exec request reader,
+        //    and SPI readers already registered from the global container 
before buildGraph()).
         for (WorkspaceReader repoWorkspaceReader : 
chainedWorkspaceReader.getReaders()) {
             if (repoWorkspaceReader != null && repoWorkspaceReader != 
reactorReader) {
                 workspaceReaders.add(repoWorkspaceReader);
             }
         }
-        // 3) .. n) Project-scoped workspace readers
+        // 3) .. n) Project-scoped legacy workspace readers 
(org.eclipse.aether)
         
workspaceReaders.addAll(getProjectScopedExtensionComponents(session.getProjects(),
 WorkspaceReader.class));
+        // n+1) Project-scoped SPI workspace readers not yet registered (those 
loaded by project-level

Review Comment:
   💡 Cosmetic — `IdentityHashMap<..., Boolean>` used as a set can be replaced 
with the idiomatic Java pattern:
   
   ```suggestion
           Set<org.apache.maven.api.spi.WorkspaceReader> wrappedDelegates =
                   Collections.newSetFromMap(new IdentityHashMap<>());
           workspaceReaders.stream()
                   .filter(r -> r instanceof SpiWorkspaceReaderAdapter)
                   .forEach(r -> 
wrappedDelegates.add(((SpiWorkspaceReaderAdapter) r).getDelegate()));
   ```
   
   Then the guard becomes `!wrappedDelegates.contains(spiReader)`. Functionally 
identical, but reads more clearly as a set operation.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to