AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Rename @FailsWithInstantExecution to @ToBeFixedForInstantExecution

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

    • -2
    • +2
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 872 more files in changeset.
Annotate integ tests failing with instant execution in :languageJava

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

    • -0
    • +2
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 34 more files in changeset.
Annotate integ tests failing with instant execution in :languageJava

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

    • -0
    • +2
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 34 more files in changeset.
Groovy incremental compilation support (#9616)

Inspired by https://github.com/gradle/gradle/pull/9388 , this PR implements Groovy compilation avoidance. Unlike Java, things are a little more complex in Groovy compilation - a compilation unit can generate multiple classes. Thus, we introduced a `sourceClassMappingFile`, which records the source to classes mappings during the compilation process. Later, we can use this information in incremental compiler: only the affected groovy source files get recompiled in next compilation.

    • -830
    • +35
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 73 more files in changeset.
Refine Groovy incremental compilation tests

    • -9
    • +0
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 12 more files in changeset.
Test groovy incremental support

    • -826
    • +40
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 38 more files in changeset.
Test groovy incremental support

    • -826
    • +40
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 38 more files in changeset.
Test groovy incremental support

    • -826
    • +40
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 38 more files in changeset.
Test groovy incremental compilation

    • -826
    • +40
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 38 more files in changeset.
Convert more tests to groovy

    • -209
    • +212
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 7 more files in changeset.
Prefer implementation/api over compile in language-java tests

    • -19
    • +19
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 9 more files in changeset.
Prefer implementation/api over compile in language-java tests

    • -19
    • +19
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 9 more files in changeset.
Prefer implementation/api over compile in language-java tests

    • -19
    • +19
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 9 more files in changeset.
Prefer implementation/api over compile in language-java tests

    • -19
    • +19
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 9 more files in changeset.
Fix non-classdir tests

    • -16
    • +6
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 3 more files in changeset.
Fix non-classdir tests

    • -16
    • +6
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 2 more files in changeset.
Fix non-classdir tests

    • -16
    • +6
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 2 more files in changeset.
Handle removals of classes transitively

After further cleaning up our class change detection logic,

I noticed that we were handling additions and removals very

differently. This has been corrected and we now detect transitive

removals too. This doesn't happen often in practice, as one needs

to deliberately exclude a task to trigger the bug that was fixed.

Nevertheless, it's good to have symmetric logic.

    • -0
    • +28
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 6 more files in changeset.
Detect changes to transitive dependencies on incremental compilation

The incremental compiler was completely ignoring changes in transitive

dependencies, except for changes to supertypes, which seems like a really

weird decision. It has been fixed to instead take all possible transitive

references into account. As a result the code is also simpler.

    • -5
    • +38
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 10 more files in changeset.
Spelling (#8199)

Fix several spelling issues.

    • -1
    • +1
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 36 more files in changeset.
Recompile types in a package if its package-info changes

Annotation processors can inspect the package of a class,

so we need to make sure that that information is up-to-date

when the package-info changes.

To support this feature we now remember all classes in the

class analysis, not just the ones that had dependents. This

leads to a small increase in memory usage, but means we can

accurately recompile only the classes affected by the given

package change. Alternatively we could omit that data and do

a full recompile instead.

    • -0
    • +19
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 7 more files in changeset.
Recompile when module-info files change

This uses a deliberatly simple strategy for now,

recompiling everything if a module file changes.

We could make this smarter by tracking changes

to exported packages and required modules and only

recompiling those who used them. But the gain is

questionable, as module files only rarely change.

    • -0
    • +36
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 7 more files in changeset.
Make incremental compilation the default.

    • -3
    • +0
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 24 more files in changeset.
Simplify incremental compile logging

We no longer need the task path, because logging is already

grouped by task. The messages are now slightly clearer about

why some of these conditions may have happened.

    • -1
    • +1
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 3 more files in changeset.
Remove unnecessary @LeaksFileHandles and fork = true

These were added to work around file leaks in the

in-processor Java/Groovy compilers, which were fixed

in previous commits. This makes the tests faster and

also makes sure that we will spot any future leaks

that could make our user's life harder.

    • -1
    • +0
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 10 more files in changeset.
Merge pull request #5332 from gradle/oehme/incremental/failsafe-asm-analysis

Guard incremental compilation against broken jars/classes

    • -1
    • +0
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 1 more file in changeset.
Speed up java incremental compilation tests

The isolated user home is no longer necessary,

because we no longer share class analysis data

in the user home, but keep it in the project dir.

    • -1
    • +0
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 1 more file in changeset.
Track type literals in annotations

Annotations are part of a classes API.

Annotation processors can read the value

and need to be called again if the referenced

type changes.

    • -2
    • +66
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 3 more files in changeset.
On CI redirect maven central queries to local repo for integration tests

    • -1
    • +1
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 108 more files in changeset.
On CI redirect jcenter queries to local repo for integration tests

    • -3
    • +3
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
  1. … 51 more files in changeset.