Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Avoid more deprecated APIs

Avoid more deprecated APIs

  1. … 43 more files in changeset.
Avoid more deprecated APIs

  1. … 34 more files in changeset.
Avoid more deprecated APIs

  1. … 34 more files in changeset.
Avoid more deprecated APIs

  1. … 28 more files in changeset.
Replace use of archiveName with archiveFileName

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 20 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 63 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 55 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 59 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 62 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 60 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 60 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 63 more files in changeset.
Remove use of deprecated API

Remove use of deprecated APIs in PluginBuilder

Replace use of archiveName with archiveFileName

Avoid more deprecated APIs

    • -5
    • +5
    ./javadoc/JavadocWorkAvoidanceIntegrationTest.groovy
  1. … 63 more files in changeset.
Rename task in test that coincidentally caused a name clash

Rename task in test that coincidentally caused a name clash

Reword logging when changes require rebuild

    • -1
    • +2
    ./api/tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 1 more file in changeset.
Use explicit accessibility for field so a field is generated by Groovy

    • -11
    • +3
    ./java/compile/incremental/AbstractSourceIncrementalCompilationIntegrationTest.groovy
Use explicit accessibility for field so a field is generated by Groovy

    • -11
    • +3
    ./java/compile/incremental/AbstractSourceIncrementalCompilationIntegrationTest.groovy
Add explicit constructor to avoid synthetic class generation

Split complex test into multiple tests

    • -63
    • +128
    ./java/compile/incremental/AbstractSourceIncrementalCompilationIntegrationTest.groovy
Log whether work changes are incremental

    • -0
    • +1
    ./api/tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 3 more files in changeset.
Log whether work changes are incremental

    • -0
    • +1
    ./api/tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 5 more files in changeset.
Use enum instead of the name string to compare the language

Improve readability of the tests

    • -14
    • +7
    ./java/compile/incremental/AbstractSourceIncrementalCompilationIntegrationTest.groovy
Document why Groovy recompiles for resource changes

Document why Groovy recompiles for resource changes

Merge branch 'master' into wolfs/java-compile-input-changes

  1. … 5 more files in changeset.
Merge branch 'master' into wolfs/java-compile-input-changes

  1. … 5 more files 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
    ./api/tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +1
    ./api/tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +134
    ./java/compile/incremental/AbstractSourceIncrementalCompilationIntegrationTest.groovy
  1. … 21 more files in changeset.