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]