Enable parallel resolution of the dependency graphThis commit introduces parallel resolution of a dependency graph. When the graph is resolved:- pick a node from the queue (starting from the root node)- for its outgoing edges, resolve them serially, or concurrently if: - all of the edges reference nodes which metadata hasn't been resolved yet - or there are more than 8 edges- then add discovered edges _in order_ add the end of the queueThis means that not _all_ graph resolution is done concurrently: there's a heuristic to tell if it's worth doing it,and similarly, there are operations which still need to be done serially in order to have guarantees on the shapeof the graph (typically, to make sure that files are visible in a certain order).
Use component id rather than module version id in the 'required by' paths in resolve exceptions. This provides a better description for local components, and also allows for components that don't have a module version id.
Moved `ResolveTestFixture` into a `org.gradle.integtests.fixtures` subpackageThis has the net effect of making this class visible to the Tooling API integrationtests, since the `org.gradle.integtests.fixtures` package is explicitly allowedin the filtering classloader used by the TAPI integration tests.