Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Support adding variants and files in component metadata rules (#10368)

Support adding variants and files in component metadata rules

  1. … 2 more files in changeset.
Only do maven artifact discovery for variants that require it

  1. … 11 more files in changeset.
Only do maven artifact discovery for variants that require it

  1. … 12 more files in changeset.
Only do maven artifact discovery for variants that require it

  1. … 11 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 15 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 15 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 15 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 15 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 15 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 15 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 15 more files in changeset.
Add support for adding variants and files to component metadata rules

  1. … 21 more files in changeset.
Revert "Revert "Merge remote-tracking branch 'origin/sg/merges/pr-9419'""

This reverts commit 0625bc7420e55e87730673231af6ad45dd04f47a.

  1. … 90 more files in changeset.
Revert "Revert "Merge remote-tracking branch 'origin/sg/merges/pr-9419'""

This reverts commit 0625bc7420e55e87730673231af6ad45dd04f47a.

  1. … 90 more files in changeset.
Revert "Merge remote-tracking branch 'origin/sg/merges/pr-9419'"

This reverts commit 2f79026f5e127a8175e25844522237615b19ed52 because of a performance regression,

reversing changes made to 7f1e66079ce629ecde3e09e549e9796ab85761dc.

  1. … 90 more files in changeset.
Deprecate download of resources over HTTP; Require opt-in

Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com>

  1. … 54 more files in changeset.
Refactor ModuleResolveMetadata

Reorganize code in packages, move serialization related code closer to

classes to reduce need of public methods.

  1. … 79 more files in changeset.
Refactor ModuleResolveMetadata

Reorganize code in packages, move serialization related code closer to

classes to reduce need of public methods.

  1. … 79 more files in changeset.
Track file access in AbstractCachedIndex

Instead of tracking access in DefaultCacheAwareExternalResourceAccessor

and CachingModuleComponentRepository this is now done in

AbstractCachedIndex which ensures it's done always when reading from

indexes of CachedItems and only does so when not already present in an

in-memory cache from a previous lookup.

  1. … 39 more files in changeset.
Enable service injection in ComponentMetadataRule

This is currently limited to the RepositoryResourceAccessor and is not

available for flat dir repositories.

Fixes #5565

  1. … 43 more files in changeset.
Mark cached files accessed when resolved via index

Both CachingModuleComponentRepository and

DefaultCacheAwareExternalResourceAccessor use an index to resolve

cached artifacts. Both now notify the underlying FileStore which now

implements FileAccessTracker. The new AccessTrackingFileStore interface

combines both interfaces so the GroupedAndNamedUniqueFileStore

subclasses (ArtifactIdentifierFileStore and ExternalResourceFileStore)

can be injected into dependent components.

  1. … 32 more files in changeset.
Make ConfigurableRule expose isolated rule params

This will better integrate with caching as the isolation will be

performed once instead of multiple times for a single rule.

Fixes #5261

  1. … 16 more files in changeset.
Create and wire in a ComponentMetadataRuleExecutor

This enables ComponentMetadataRule execution to be cached

Update the CrossBuildCachingRuleExecutor to work with a set of rule

instead of a single one. This means we cache or miss on a chain of rules

instead of single rules.

Fixes #5526

  1. … 32 more files in changeset.
Enforce isolation of ComponentMetadataRule

This means that passed in parameters must be snapshotable as defined by

the ValueSnapshotter

Added support for Attribute to ValueSnapshotter

  1. … 53 more files in changeset.
Fix failing unit tests

  1. … 13 more files in changeset.
Fix failing unit tests

  1. … 13 more files in changeset.
Add support for component metadata suppliers for Maven repositories

This implements feature parity between Ivy and Maven repositories with regards to

component metadata suppliers. Before, only Ivy repositories could benefit from

user provided component metadata suppliers. Now, both Maven and Ivy repositories

support this. The test that was Ivy specific has been migrated to the new test

fixtures, allowing us to check both Maven and Ivy in a single test class.

  1. … 18 more files in changeset.
Add support for version lister on Ivy repositories

This commit introduces the concept of custom version lister. Whenever

a dynamic version of a module is requested, Gradle has to perform a

lookup on a remote repository to list the available versions of this

component. With this change, it is now possible for a build author to

provide a custom version lister. This can be used to solve different

problems:

- it becomes possible to have a single remote resources that lists all

versions of all known module, for example

- avoid hitting a remote repository if we know a module will never be

found there

Note that for the latter, if the version is _fixed_, the version lister

will never be called so we will reach the remote repository in any case.

For the purpose, an interface, `MetadataSupplierAware` has been extracted

and is for now only used by Ivy repositories, because the latter was the

only one providing component metadata suppliers.

With this change it will become possible for Maven repositories to

support that too.

It's worth noting that the goal of this separation of concerns is to make

it possible for a user to either supply a version lister, a component

metadata supplier, or both. And if using both, a shared cache can be used

to avoid reaching a repository multiple times. This means that in theory

it should be possible to perform a single network request to both list

the versions of a component **and** get the component metadata necessary

to perform the selection of the component.

This commit does _not_ declaring the attributes of a component yet.

  1. … 21 more files in changeset.
Make `MavenMetadataLoader` usable outside of MavenResolver

- Move `MavenMetadata` and related types into a maven-specific package

- Create `MavenMetadataLoader` and provide when constructing `MavenResolver`

Signed-off-by: Daz DeBoer <daz@gradle.com>

  1. … 10 more files in changeset.
Clean up `MetadataSource` implementations

- Remove public APIs that are not required.

- Inlined unnecessary subtype

- Moved new `MetadataSource` and related types into a subpackage

- Simplified `MetadataArtifactProvider` to only provide `IvyArtifactName`

for metadata artifact.

  1. … 47 more files in changeset.