[ https://issues.apache.org/jira/browse/MRESOLVER-7?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17611021#comment-17611021 ]
ASF GitHub Bot commented on MRESOLVER-7: ---------------------------------------- cstamas commented on code in PR #178: URL: https://github.com/apache/maven-resolver/pull/178#discussion_r983504722 ########## maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java: ########## @@ -365,6 +477,64 @@ else if ( descriptorResult == DataPool.NO_DESCRIPTOR ) return descriptorResult; } + static class ParallelDescriptorResolver + { + final ExecutorService executorService; Review Comment: the executor exists in connector, this is impl module, connector does not depend on impl nor impl depend on connector, see https://maven.apache.org/resolver/index.html Now, not only that, but also it is quite possible that execution does not "even get to" connector (ie. all is present locally), so this would require major undertake, probably to move executor providing component to SPI (as util is not quite the place for this), then change both uses (so BF collector and connector), but in connector module we'd need to provide some "stub" implementation (as again, it does not depend on impl), and finally that would become one whole. Am currently totally not concerned about sharing executor, but more that executor is created per invocation of collect merhd... > Download dependency POMs in parallel > ------------------------------------ > > Key: MRESOLVER-7 > URL: https://issues.apache.org/jira/browse/MRESOLVER-7 > Project: Maven Resolver > Issue Type: Improvement > Components: Resolver > Affects Versions: Aether 1.0.2 > Reporter: Harald Wellmann > Assignee: Tamás Cservenák > Priority: Major > Fix For: resolver-next > > Attachments: resolve_deps.png, resolver.log > > Time Spent: 40m > Remaining Estimate: 0h > > h3. Background > When building a project with dependencies not yet available in the local > repository, I noticed that Maven 3.3.9/Aether 1.0.2 first downloads the > dependency POMs _sequentially_ and then proceeds downloading the dependency > JARs with up to 5 threads _in parallel_. > Due to this, when first building a project with a large number of > dependencies, downloading a large number of small POMs may take a lot longer > than downloading the much larger JARs, or even longer than building the > project itself, especially when a repository manager is used which increases > the download latency. > h3. Enhancement > Download POMs of (transitive) dependencies in parallel to significantly speed > up initial builds of large projects. -- This message was sent by Atlassian Jira (v8.20.10#820010)