Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Introduce `CapabilitiesExtension`

This commit adds a capabilities extension which can be applied to a project. If it's added, local

components gain the ability to declare capabilities. Currently, only the `java-library` plugin

supports capabilities, but it's expected that more plugins will add it (for example, the native

plugin), which explains why the extension lives in `core`.

When a project declares capabilities, they are bound to configurations. This lets us fail whenever

a local component capability conflicts with a transitive module capability. It will also let us

publish capabilities for local components in a subsequent commit.

    • -3
    • +4
  1. … 16 more files in changeset.
Rename metadata builders

- `ConfigurationComponentMetaDataBuilder` -> `LocalComponentMetadataBuilder`

- `DependenciesToModuleDescriptorConverter` -> `LocalConfigurationMetadataBuilder`

    • -0
    • +67
  1. … 21 more files in changeset.
Run Configuration dependency actions only when required

This change fixes #3908, by deferring the execution of Configuration

`withDependencies` and `defaultDependencies` actions. Previously,

these were executed when constructing the LocalComponentMetadata

instance for resolving: this execution is now deferred until the

dependencies or excludes for the LocalConfigurationMetadata are

actually required.

Fixes #3908

Signed-off-by: Daz DeBoer <>

    • -0
    • +2
  1. … 6 more files in changeset.