From 321fc80b92e3c58095d6cbe7e0f57c56ff33d8bc Mon Sep 17 00:00:00 2001 From: Jonas Rutishauser Date: Wed, 10 Jan 2024 21:03:57 +0100 Subject: [PATCH] [MNG-8005] do not ignore ide WorkspaceReader --- .../main/java/org/apache/maven/DefaultMaven.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java index 9ada51245d5..1b9dcb92a38 100644 --- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java +++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java @@ -75,6 +75,7 @@ import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.RepositorySystemSession.CloseableSession; import org.eclipse.aether.repository.WorkspaceReader; +import org.eclipse.sisu.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.helpers.MessageFormatter; @@ -100,6 +101,8 @@ public class DefaultMaven implements Maven { private final DefaultRepositorySystemSessionFactory repositorySessionFactory; + private final WorkspaceReader workspaceRepository; + private final GraphBuilder graphBuilder; private final BuildResumptionAnalyzer buildResumptionAnalyzer; @@ -121,6 +124,7 @@ public DefaultMaven( LegacySupport legacySupport, SessionScope sessionScope, DefaultRepositorySystemSessionFactory repositorySessionFactory, + @Nullable @Named("ide") WorkspaceReader workspaceRepository, @Named(GraphBuilder.HINT) GraphBuilder graphBuilder, BuildResumptionAnalyzer buildResumptionAnalyzer, BuildResumptionDataRepository buildResumptionDataRepository, @@ -132,6 +136,7 @@ public DefaultMaven( this.legacySupport = legacySupport; this.sessionScope = sessionScope; this.repositorySessionFactory = repositorySessionFactory; + this.workspaceRepository = workspaceRepository; this.graphBuilder = graphBuilder; this.buildResumptionAnalyzer = buildResumptionAnalyzer; this.buildResumptionDataRepository = buildResumptionDataRepository; @@ -238,8 +243,15 @@ private MavenExecutionResult doExecute( } try { + List readers = new ArrayList<>(); WorkspaceReader reactorReader = lookup.lookup(WorkspaceReader.class, ReactorReader.HINT); - chainedWorkspaceReader.setReaders(Collections.singletonList(reactorReader)); + readers.add(reactorReader); + if (request.getWorkspaceReader() != null) { + readers.add(request.getWorkspaceReader()); + } else if (workspaceRepository != null) { + readers.add(workspaceRepository); + } + chainedWorkspaceReader.setReaders(readers); } catch (LookupException e) { return addExceptionToResult(result, e); }