Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Slightly improve handling of Jar manifests when loading from the instant execution cache, so that Jar tasks are up-to-date on first load from the instant execution cache when nothing has changed.

    • -5
    • +0
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -11
    • +10
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -0
    • +2
    ./tasks/compile/JavaCompileJavaVersionIntegrationTest.groovy
  1. … 15 more files in changeset.
Model the output directory for source files generated by annotation processors as a `DirectoryProperty` and replace the convention mapping with a convention on the property.

This change means that JavaCompile tasks added by the Java base plugin for a source set will be up-to-date on first load from the instant execution cache, and will generate source files to the correct location when they do happen to run.

    • -3
    • +1
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
    • -16
    • +3
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -12
    • +2
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -2
    • +25
    ./tasks/compile/JavaCompileIntegrationTest.groovy
    • -5
    • +2
    ./tasks/compile/JavaCompileJavaVersionIntegrationTest.groovy
    • -2
    • +0
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 20 more files in changeset.
Remove JNI headers on incremental compilation

The removal only worked for top-level classes in the

default package.

#12064

    • -37
    • +44
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 2 more files in changeset.
Change the `JavaInstallationRegistry` API to represent the installation directory using `Directory` and `Provider<Directory>` instead of `File`.

    • -1
    • +1
    ./tasks/compile/CrossCompilationIntegrationTest.groovy
  1. … 8 more files in changeset.
Serialize the path of a CopySpec to the instant execution cache.

    • -2
    • +0
    ./tasks/compile/CrossCompilationIntegrationTest.groovy
  1. … 3 more files in changeset.
Reuse test fixture to determine output bytecode version.

    • -20
    • +8
    ./tasks/compile/CrossCompilationIntegrationTest.groovy
Change the API of `JavaInstallation` and `JavaInstallationRegistry`.

    • -6
    • +6
    ./tasks/compile/CrossCompilationIntegrationTest.groovy
  1. … 11 more files in changeset.
Add a test case to demonstrate that build logic can use `JavaInstallationRegistry` to help configure a Java project to build and test using Java 6 or Java 7.

    • -0
    • +128
    ./tasks/compile/CrossCompilationIntegrationTest.groovy
Add tests for rewiring compile task dependencies

This also updates existing tests to use the new API.

    • -1
    • +1
    ./tasks/compile/JavaCompileRelocationIntegrationTest.groovy
    • -1
    • +1
    ./tasks/compile/JavaCompileTaskIntegrationTest.groovy
  1. … 13 more files in changeset.
Rename @FailsWithInstantExecution to @ToBeFixedForInstantExecution

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -2
    • +2
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
    • -11
    • +11
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -13
    • +13
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -2
    • +2
    ./tasks/compile/JavaAnnotationProcessingCompileAvoidanceIntegrationTest.groovy
    • -3
    • +3
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -3
    • +3
    ./tasks/compile/JavaCompileJavaVersionIntegrationTest.groovy
    • -4
    • +4
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 865 more files in changeset.
Annotate integ tests failing with instant execution in various projects

after first round of CI feedback

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 58 more files in changeset.
Annotate integ tests failing with instant execution in :languageJava

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -0
    • +2
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
    • -0
    • +11
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -0
    • +13
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -0
    • +2
    ./tasks/compile/JavaAnnotationProcessingCompileAvoidanceIntegrationTest.groovy
    • -0
    • +3
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -0
    • +3
    ./tasks/compile/JavaCompileJavaVersionIntegrationTest.groovy
    • -0
    • +4
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 27 more files in changeset.
Fix correct caching of default excludes

We have been using case insensitive default excludes since Gradle 5.4.

See https://github.com/gradle/gradle/commit/954d5e8d5e35d49f0f575c093a7fdf24b79a4c1b

    • -0
    • +29
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 1 more file in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

  1. … 64 more files in changeset.
Reword logging when changes require rebuild

    • -1
    • +2
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 1 more file in changeset.
Improve incremental compilation for Java

This patch splits the collected dependencies found in a .class file into "accessible" and "private" dependencies.

* "Accessbile" dependencies are classes that belong to non-private fields, non-private method signatures, class signature ("extends", "implements") etc

* "Private" dependencies are classes that belong to private fields, private methods and classes used in method bodies (i.e. just in "the code")

The TL;DR of the approach is to change the algorithm in `ClassSetAnalysis.getRelevantDependents` to only recurse for "accessible" dependencies.

Goal by example:

Consider classes like

```

class A {

private B b

}

class B {

private C c

}

class C {

}

```

The previous algorithm in `ClassSetAnalysis.getRelevantDependents` would recompile all classes, if `C` was changed. The new algorithm recompiles

just `B` and `C`, because `C` has been changed and `B` uses `C`. But it doesn't recompile `A`, because `A` is not affected by the change. The same

is true, if `C` would have been only used in a method body of `B` or in the signature of a `private` function in `B`.

The algorithm properly handles changes to classes used in the following example:

```

public class SomeClass {

List<Integer> field = new LinkedList<Integer>();

private AccessedFromPrivateField accessedFromPrivateField;

AccessedFromPackagePrivateField someField;

private AccessedFromPrivateMethod accessedFromPrivateMethod() {

return null;

}

public String accessedFromPrivateMethodBody() {

return new AccessedFromPrivateMethodBody().toString();

}

private Set<String> stuff(HashMap<String, String> map) {

System.out.println(new Foo());

return new HashSet<String>();

}

private class Foo {

// Hint: this field won't appear in the ClassAnalysis for SomeClass

public AccessedFromPrivateClassPublicField anotherField;

public String toString() {

return "" + new AccessedFromPrivateClass();

}

}

}

```

Changes the serialization format of `ClassAnalysis` + `DependentsSet`

Signed-off-by: Robert Stupp <snazy@snazy.de>

    • -1
    • +1
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +1
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 22 more files in changeset.
Revert "Introduce 'annotationProcessorClasspath' configuration"

This reverts commit 444a899c9cf4c968ce6a490d8148f35a1d631795 and

follow up changes to the annotation processing configurations.

    • -0
    • +6
    ./tasks/compile/JavaAnnotationProcessingCompileAvoidanceIntegrationTest.groovy
  1. … 11 more files in changeset.
Address more review feedback

    • -2
    • +2
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 8 more files in changeset.
Use input changes in JavaCompile

    • -1
    • +1
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 7 more files in changeset.
Remove deprecated getEffectiveAnnotationProcessorPath() method

    • -22
    • +0
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 3 more files in changeset.
Remove `CompatibilityAdapterForTaskInputs`

  1. … 5 more files in changeset.
Rename format attribute and clean up values

Attribute is now org.gradle.libraryelements and only applied

to variants having the org.gradle.category at library.

This means that values related to platforms or document in the

former format attribute are removed.

  1. … 46 more files in changeset.
Introduce 'annotationProcessorClasspath' configuration

    • -6
    • +0
    ./tasks/compile/JavaAnnotationProcessingCompileAvoidanceIntegrationTest.groovy
  1. … 9 more files in changeset.
Merge pull request #9604 from gradle/oehme/fix-zip-hashing

Faster zip hashing, take 2

  1. … 1 more file in changeset.
Restrict ZipFile usage to newer Java versions

It seems that the native libraries underlying ZipFile have memory

leaks on older Java versions, so we need to fall back to using the less

efficient ZipInputStream in those cases.

  1. … 4 more files in changeset.
Revert "Revert "Merge pull request #9344 from gradle/oehme/zip-hashing""

This reverts commit 4ce18d53224f02f0a764849e938a8fc85f85413c.

  1. … 17 more files in changeset.
Revert "Merge pull request #9344 from gradle/oehme/zip-hashing"

This reverts commit 9c6dd6f2615ac11e88fe5dff67a595a3902ff535, reversing

changes made to b049f7a5c1d4aa35a384103ac5061a2d4e4de317.

  1. … 17 more files in changeset.
Changed a bunch of integration tests to use the various task assertion methods instead of directly querying the `executedTasks` and `skippedTasks` collections. These methods can give better diagnostics when the assertion fails, and can perform additional checks.

    • -1
    • +1
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -6
    • +6
    ./tasks/compile/JavaCompileJavaVersionIntegrationTest.groovy
  1. … 96 more files in changeset.
Remove utilisation of *-jars usage values

  1. … 55 more files in changeset.
Accept deprecation warnings in tests for compile/runtime configurations

  1. … 8 more files in changeset.