ClientModuleResolverTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Use a ComponentResolveMetadata decorator for Client module dependencies

This simplifies the underlying infrastructure a little by removing `artifactOverrides`

and one use of `setDependencies()` from `(Mutable)ModuleComponentResolveMetadata`.

    • -100
    • +0
    ./ClientModuleResolverTest.groovy
  1. … 9 more files in changeset.
Separate 'DslOrigin' dependencies from 'LocalOrigin' dependencies

  1. … 12 more files in changeset.
Rename `DefaultVersionConstraint` to `DefaultMutableVersionConstraint`

... and use the immutable version whenever possible.

  1. … 63 more files in changeset.
Make `ModuleComponentSelector` the source of truth for version constraints

This commit pushes `VersionConstraint` as a primary concept in `ModuleComponentSelector`. It replaces the (now)

deprecated `getVersion` call, which didn't reflect all possible constraints on a version. This change has several

consequences:

- version constraints now need to be "serializable"

- version constraints now consist of a preferred version and a list of rejected versions

- only a single item in the rejection list is supported

- Gradle module metadata parsing now generates a prefer/reject list

- Gradle module metadata writing does **not** yet support writing prefer/reject

- the module metadata binary format has been bumped to support prefer/reject in module descriptors

- metadata rules can say `useTarget(VersionConstraint)`

Issue #3312

  1. … 93 more files in changeset.
Moved the artifact definitions for Ivy and Maven metadata from the legacy `ModuleDescriptorState` onto the relevant metadata types. The Maven metadata always includes a single hard-coded artifact, so don't persist the artifact definitions for Maven modules.

Changed the Maven metadata implementation so that the Jar artifact is attached to the 'compile' configuration and is inherited by the other configurations. Previously the artifact was attached to the 'default' configuration.

Incremented the cache layout version to reflect the changes to the persisted metadata.

  1. … 31 more files in changeset.
Remove the use of `Optional` in `ProjectDependency#getTargetConfiguration`

+review REVIEW-6242

  1. … 13 more files in changeset.
Deprecate `ModuleDependency#getConfiguration` in favor of `ModuleDependency#getTargetConfiguration`

We want to be able to differentiate between two cases when dependencies on projects are declared:

1. the user didn't choose any specific configuration

2. the user chose a configuration, and it can be the same as the default one

The previous implementation required that `getConfiguration` returns a non-null value, making it impossible to

make a difference between the following cases:

`compile project(':')`

and

`compile project(path: ':', configuration: 'default')`

The new `getTargetConfiguration` method returns an `Optional<String>`, which will be `absent` if the user

didn't choose anything specific, and `present` if he did.

This allows us to make an explicit configuration selection take precedence over automatic configuration

selection when attributes are defined.

  1. … 15 more files in changeset.
Fix failing tests by passing the `Configuration` context to the dependency set

This commit fixes the "non fluid" dependencies use case by introducing a way to pass the consumer context

to the dependency resolution engine when constructing task dependencies. This is done by adding the

`Configuration` instance to `DefaultDependencySet`, and by adding a method to `ProjectDependencyInternal`

so that we can use the attributes to choose the appropriate configuration.

  1. … 15 more files in changeset.
Remove `setDependentConfiguration`

This commit removes the `setDependentConfiguration` in favor of passing context, because a `Dependency` can be used

in various configurations, so there's no unique dependent configuration.

It's work in progress and it breaks the test suite, especially for the "non fluid" dependencies case.

  1. … 23 more files in changeset.
Merged the `Dependency` hierarchy into the `DependencyMetadata` hierarchy.

  1. … 41 more files in changeset.
Detangle `ModuleComponentResolveMetaData` and `MutableModuleComponentResolveMetaData` to tighten the separation between mutable and immutable views of the module meta-data.

Implementation of the immutable views are still not completely immutable yet.

  1. … 19 more files in changeset.
Changed client module resolver to make mutable copy of metadata prior to mutating it.

  1. … 1 more file in changeset.
Rename `o.g.i.c.model.*{MetaData => Metadata}`

  1. … 162 more files in changeset.
Rename `o.g.i.c.e.model.*{MetaData => Metadata}`

  1. … 113 more files in changeset.
Removed direct access of ComponentMetaData -> artifacts (should be via ConfigurationMetaData)

  1. … 7 more files in changeset.
Started simplifying DefaultLocalComponentMetaData (and fixed unit tests)

  1. … 5 more files in changeset.
Don’t create an Ivy ModuleDescriptor for resolved local projects!

  1. … 26 more files in changeset.
Renamed ComponentRequestMetaData -> ComponentOverrideMetadata

  1. … 35 more files in changeset.
Replaced DependencyMetaData with ComponentRequestMetaData in ComponentMetaDataResolver.resolve()

- Added ComponentRequestMetaData.getClientModule()

    • -10
    • +10
    ./ClientModuleResolverTest.groovy
  1. … 15 more files in changeset.
Started to split up DependencyToComponentResolver so that we first select a candidate (and eventually candidates) when traversing the graph edges and later request its metadata if we need to traverse the node.

    • -12
    • +14
    ./ClientModuleResolverTest.groovy
  1. … 16 more files in changeset.
Renamed a few dep management types to replace 'ModuleVersion' with 'ModuleComponent'

  1. … 116 more files in changeset.
Renamed the types in the ComponentMetaData hierarchy

  1. … 109 more files in changeset.
Moved some resolver types from org.gradle.api.internal.artifacts to org.gradle.internal.resolve hierarchy.

  1. … 96 more files in changeset.
Moved some exception and result types out of org.gradle.api.internal.artifacts into org.gradle.internal.resolve

  1. … 109 more files in changeset.
Moved some meta-data types out of org.gradle.api.internal.artifacts to org.gradle.internal.component, and split up into base, local and external types.

  1. … 307 more files in changeset.
Renamed subprojects/core-impl to subprojects/dependency-management.

    • -0
    • +94
    ./ClientModuleResolverTest.groovy
  1. … 1384 more files in changeset.