Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Create a `ResolvedArtifact` wrapper for each external artifact once per build invocation, rather than once per dependency graph per build invocation.

    • -2
    • +2
    ./resolve/JvmLocalLibraryDependencyResolverTest.groovy
  1. … 15 more files in changeset.
Moved some in-heap caching of `ResolvedArtifact` from cache per dependency graph to cache per build invocation. In this change the caching is applied only to local artifacts. With this change, only a single `ResolvedArtifact` wrapper is created and retained per build invocation for each project artifact, instead of creating and retaining a wrapper per artifact per resolved dependency graph.

    • -7
    • +10
    ./resolve/JvmLocalLibraryDependencyResolverTest.groovy
  1. … 9 more files in changeset.
Replace generic `Transformer` with typed `VariantSelector`

This change allows us to use `select` instead of `transform` as the

action method and should also locate uses/implementations of this

interface.

    • -2
    • +2
    ./resolve/JvmLocalLibraryDependencyResolverTest.groovy
  1. … 23 more files in changeset.
Turn `ModuleExclusions` into a build scoped service

    • -0
    • +3
    ./resolve/JvmLibraryResolveContextTest.groovy
  1. … 53 more files in changeset.
Pass the module identifier factory down to module forcing resolve rule

    • -1
    • +1
    ./resolve/JvmLibraryResolveContextTest.groovy
  1. … 11 more files in changeset.
Revert De-duplicate commonly used immutable objects in dependency resolution and IDE changes

Commits reverted:

- 807b1e4f8d1585d93c1de3e9ca83d99d0819e2d2

- 9482b0b05374253cafdb776550d7016385912e04

- 4ecead06b53ec6b0f15c517bf0d0c6a74c3b3c05

- db1135a8a5f1c507e0df3c03ad12ddc963799e4d

- 7350bcbae30a777909cec74ebfd5a91d2c89081e

Additionally, minor changes to avoid usage of introduced

classes and methods from subsequent commits.

Issue: gradle/gradle-private#563

    • -1
    • +1
    ./resolve/JvmLibraryResolveContextTest.groovy
    • -1
    • +1
    ./resolve/JvmLocalLibraryDependencyResolverTest.groovy
  1. … 108 more files in changeset.
De-duplicate (= intern) some instances in dependency resolution

- Reduce memory usage of dependency resolution by de-duplicating the

most commonly used immutable instances.

- Objects aren't strictly immutable: displayName is calculated lazily

- solution is thread-safe without synchronization

- lazy calculation is needed for efficient interning since a lookup

will always create a new instance.

- Use strong references in some instance interners

- strong references cause less GC overhead than weak references

- Strong references:

DefaultModuleIdentifier

DefaultModuleVersionIdentifier

DefaultModuleVersionSelector

DefaultModuleComponentIdentifier

DefaultModuleComponentSelector

DefaultProjectComponentSelector

- Weak references:

DefaultLibraryBinaryIdentifier

DefaultLibraryComponentSelector

DefaultIvyArtifactName

- Both reference types:

DefaultBuildIdentifier

DefaultProjectComponentIdentifier

- The reason for special handing is that DefaultBuildIdentifier

has a state field "current" as part of the instance which

isn't part of equals/hashCode.

+review REVIEW-6277

    • -1
    • +1
    ./resolve/JvmLibraryResolveContextTest.groovy
    • -1
    • +1
    ./resolve/JvmLocalLibraryDependencyResolverTest.groovy
  1. … 103 more files in changeset.
Move JVM-component dependency resolution classes

Moved a lot of classes from ':platform-base' to ':platform-jvm',

and restructured into common `org.gradle.jvm.internal.resolve` package.

    • -74
    • +0
    ./DefaultJavaPlatformVariantAxisCompatibilityTest.groovy
    • -0
    • +73
    ./resolve/DefaultJavaPlatformVariantAxisCompatibilityTest.groovy
    • -0
    • +75
    ./resolve/DefaultVariantsMetaDataTest.groovy
    • -0
    • +49
    ./resolve/JvmLibraryResolveContextTest.groovy
    • -0
    • +292
    ./resolve/JvmLocalLibraryDependencyResolverTest.groovy
    • -0
    • +26
    ./resolve/ParametrizedBinaryString.java
    • -0
    • +26
    ./resolve/ParametrizedBinaryVariantDimension1.java
    • -0
    • +24
    ./resolve/ParametrizedVariant.java
    • -0
    • +22
    ./resolve/VariantDimension1.java
    • -0
    • +22
    ./resolve/VariantDimension2.java
    • -0
    • +20
    ./resolve/VariantDimension3.java
    • -0
    • +241
    ./resolve/VariantsMatcherTest.groovy
    • -0
    • +107
    ./resolve/VariantsMetaDataHelperTest.groovy
  1. … 46 more files in changeset.
Moved `ComponentSpecIdentifier` into an internal package.

    • -1
    • +1
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 6 more files in changeset.
Pushed `JvmBinaryTasks` down to `JarBinarySpec` and use same pattern as for the native binaries to statically declare the tasks.

  1. … 9 more files in changeset.
Fixed unit test for changes to descriptors of `BinarySpec` children.

    • -2
    • +2
    ./plugins/CreateJvmBinariesTest.groovy
Rework extensible type fixtures to simplify code

+review REVIEW-5695

    • -3
    • +1
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 13 more files in changeset.
Make extensible type fixtures work with managed types

Things that had to be cleared up:

- not all Base*Fixtures classes were creating nodes with managed

projections

- some tests were using a separate ManagedProxyFactory, and the same

type got generated twice in the same classloader

+review REVIEW-5695

  1. … 16 more files in changeset.
Merged `BinaryNamingSchemeBuilder` into `BinaryNamingScheme`.

    • -10
    • +2
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 13 more files in changeset.
Do not use the legacy decoration on the delegate objects created for `ComponentSpec`, `BinarySpec` and `LanguageSourceSet` elements.

+review REVIEW-5708

    • -3
    • +1
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 26 more files in changeset.
Use a consistent API for exported packages

- Removed calculated getter `JvmLibrarySpec.getExportedPackages()`

- Changed `JvmApiSpec.getExports()` to return `List<String>`

This change makes the API consistent from a read/write point of view.

+review REVIEW-5648

    • -0
    • +79
    ./JvmPackageNameTest.groovy
  1. … 8 more files in changeset.
Move ModelRegistryHelper functionality to Groovy extension module

+review REVIEW-5715

    • -1
    • +2
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 18 more files in changeset.
Use the public type of a `LanguageSourceSet` in its display name.

+review REVIEW-5708

  1. … 20 more files in changeset.
Fixed some unit tests for change to test fixture.

+review REVIEW-5708

    • -1
    • +2
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 7 more files in changeset.
Promote ApiSpec and co. to non-internal status

This change promotes ApiSpec, PackageName and related methods to

non-internal status in order to make them properly available to users,

especially when configuring the software model from within a

RuleSource class. Notice how it is now no longer necessary to

interact with the JvmLibrarySpecInternal interface in

ApiSpecIntegrationTest.

- Move o.g.jvm.{internal => }.ApiSpec and convert it to an interface

- Add o.g.jvm.internal.DefaultApiSpec implementation of ApiSpec

- Move o.g.jvm.{internal => }.PackageName

- Pull up api- and dependency-related mutators from

JvmLibrarySpecInternal to JvmLibrarySpec

- Add and polish Javadoc where appropriate

- Mark newly promoted types as @Incubating

+review REVIEW-5694

  1. … 10 more files in changeset.
Incorporate review feedback for ApiSpec

- Do not expose collections without first creating a defensive copy

- Do not mark types declared in internal packages as @Incubating

- Do not rely on #toString for purposes other than debugging

+review REVIEW-5663

  1. … 3 more files in changeset.
Move o.g.jvm.{internal.apigen=>tasks.api}

This commit moves all of the types directly within the

o.g.jvm.internal.apigen package to their new home in o.g.jvm.tasks.api.

Stay tuned for more exciting developments in subsequent commits.

    • -276
    • +0
    ./apigen/ApiStubGeneratorAnnotationsTest.groovy
    • -145
    • +0
    ./apigen/ApiStubGeneratorInnerClassTest.groovy
    • -453
    • +0
    ./apigen/ApiStubGeneratorTest.groovy
    • -202
    • +0
    ./apigen/ApiStubGeneratorTestSupport.groovy
    • -77
    • +0
    ./apigen/ApiStubGeneratorTestSupportTest.groovy
    • -545
    • +0
    ./apigen/ApiStubGeneratorValidationTest.groovy
  1. … 11 more files in changeset.
Move API stub generator into platform-jvm

+review REVIEW-5649

    • -0
    • +276
    ./apigen/ApiStubGeneratorAnnotationsTest.groovy
    • -0
    • +145
    ./apigen/ApiStubGeneratorInnerClassTest.groovy
    • -0
    • +453
    ./apigen/ApiStubGeneratorTest.groovy
    • -0
    • +202
    ./apigen/ApiStubGeneratorTestSupport.groovy
    • -0
    • +77
    ./apigen/ApiStubGeneratorTestSupportTest.groovy
    • -0
    • +545
    ./apigen/ApiStubGeneratorValidationTest.groovy
  1. … 52 more files in changeset.
BaseBinarySpec.sources is a node-backed ModelMap

  1. … 22 more files in changeset.
Remove the need for `ComponentSpecInternal` to expose a `FunctionalSourceSet`

- Rejigged CUnit plugin so that source sets are created via ModelMap API

- Don't use FunctionalSourceSet.baseDir to configure source directories for ComponentSpec.sources

- Removed `FunctionalSourceSet.baseDir`

Issue: gradle/langos#40 +review REVIEW-5681

    • -1
    • +2
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 7 more files in changeset.
Merge branch 'release'

    • -2
    • +1
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 4 more files in changeset.
Remove unused ProjectSourceSet

+review REVIEW-5669

    • -2
    • +1
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 15 more files in changeset.
Pass a baseDir to the fixture for JvmLibrarySpec's

    • -1
    • +2
    ./plugins/CreateJvmBinariesTest.groovy
Added convenience methods for generating task names to `BinaryTasksCollection`.

This allows a plugin to create tasks for a binary without needing to care about where in the model the binary might happen to live.

  1. … 6 more files in changeset.
Changed the JVM and native component plugins to use names for binaries that reflect the role they play.

Now that more than one component may have a binary with a given name, use:

- `jar` as the name for a Jar binary that belongs to a JVM library

- `executable` as the name for an executable that belongs to a native application

- `sharedLibrary` and `staticLibrary` as the name for the binaries of a native library.

These can later turn into static properties of the appropriate `ComponentSpec` types.

There is a breaking change in this commit: the lifecycle task name and output directory name of the binaries of components with multiple variants now include the component name at the start of the name, rather than somewhere in the middle.

    • -1
    • +1
    ./plugins/CreateJvmBinariesTest.groovy
  1. … 26 more files in changeset.