Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Resolve package cycle

    • -1
    • +1
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +1
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 23 more files in changeset.
Reference enum constants from tests

    • -2
    • +4
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -2
    • +4
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +2
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -1
    • +3
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
Track execution time in nanoseconds

This commit changes `TimeTrackingProcessor` to internally use Guava's

`Stopwatch` for keeping track of execution time. The lossy conversion to

millis is performed after each operation, but rounding errors do no

longer accumulate.

    • -7
    • +14
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
  1. … 4 more files in changeset.
Only decorate compilation of JavaCompile task

Makes names clearer and reduces potential confusion.

    • -3
    • +3
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
    • -2
    • +2
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -2
    • +2
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -6
    • +6
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -2
    • +2
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 15 more files in changeset.
Report annotation processor type in build operation result

Instead of just reporting whether an annotation processor was

incremental, we now report its type, i.e. aggregating, isolating, or

unknown.

    • -1
    • +1
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +1
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +1
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -1
    • +1
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 7 more files in changeset.
Report whether annotation processor is incremental

This commit adds an `incremental` property to the result of the build

operation and checks that it’s reported correctly for the different

annotation processor types.

    • -0
    • +3
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
    • -0
    • +15
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -0
    • +15
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -0
    • +1
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -0
    • +6
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 19 more files in changeset.
Report List<AnnotationProcessorDetails> instead of Map<String, Long>

    • -8
    • +16
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
  1. … 4 more files in changeset.
Allow to detect when annotation processor info is missing

- Remove redundant task path from build operation details as it's

enclosed in an ExecuteTaskBuildOperationType operation already.

- Add coverage for forking compilation where annotation processors are

neither instrumented nor tracked.

- Use `null` to signal that no annotation processor execution times are

available.

- Extract lookup code for build operation into separate fixture class

and reuse it in all tests.

    • -24
    • +33
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
  1. … 6 more files in changeset.
Report annotation processor execution time

In order to track time spent by annotation processors, invocations of

compilers in `JavaCompile` and `GroovyCompile` are now wrapped in build

operations that report the execution time per fully-qualified annotation

processor class name in their result.

    • -15
    • +79
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
  1. … 22 more files in changeset.
Set default value to annotationProcessorGeneratedSourcesDirectory

This also fixes the documentation for the options.annotationProcessorPath

default value.

Fixes #4956

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

    • -5
    • +5
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -5
    • +5
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -3
    • +3
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -2
    • +2
    ./tasks/compile/UnknownIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 7 more files in changeset.
Merge pull request #6921 from gradle/marc/issues/6296-ignore-annotation-processors-on-compile-classpath

Ignore annotation processors on compile classpath and forbid using -processorpath

    • -5
    • +42
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 2 more files in changeset.
Deprecate JavaCompile.effectiveAnnotationProcessorPath

    • -0
    • +22
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 3 more files in changeset.
Fix unsafe access in java compile integration test

    • -15
    • +15
    ./tasks/compile/JavaCompileIntegrationTest.groovy
Forbid specifying -processorpath in compiler args

Resolves #6295.

    • -26
    • +0
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -3
    • +19
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 6 more files in changeset.
Prohibit setting `-sourcepath` directly via Java compiler args

This behaviour was deprecated in 4.x. Removing for 5.0.

Fixes #6294

    • -32
    • +5
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 3 more files in changeset.
Ignore annotation processors on compile classpath

Resolves #6296.

    • -4
    • +4
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
  1. … 16 more files in changeset.
Ignore some tests on IBM JDK

Some tests (e.g. JavaFx) are not supported by IBM JDK 8, ignored.

  1. … 2 more files in changeset.
Ignore some tests on IBM JDK

Some tests (e.g. JavaFx) are not supported by IBM JDK 8, ignored.

  1. … 2 more files in changeset.
Raise minimum build JVM version to Java 8

    • -11
    • +11
    ./tasks/compile/JavaCompileJavaVersionIntegrationTest.groovy
  1. … 29 more files in changeset.
Recompile when a resource file changes

We can't tell what annotation processors might be doing with a

resource file, as the processing API does not provide any way

of associating resources with outputs. Therefor the only safe

option for now is doing a full recompile.

We no longer force a full recompile when a processor reads a

resource. We only recompile if the resource changes. This makes

it even easier to make a lot of processors incremental.

    • -0
    • +21
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
    • -18
    • +2
    ./tasks/compile/AggregatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -18
    • +2
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 7 more files in changeset.
Remove CompileOptions.bootClasspath

#6297

    • -20
    • +0
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 7 more files in changeset.
Make Lombok work in forked compilers

Lombok (and potentially other processors) access certain compiler

internals to do their magic. While this is not valid according to

the processing spec, we still need to support it unless we want to

annoy a big part of our user base.

    • -1
    • +0
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
  1. … 2 more files in changeset.
Add first-class support for Javac's -h option

Add the headerOutputDirectory as a compile option,

track it as an output directory and delete stale headers

when doing incremental compilation.

    • -0
    • +41
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 20 more files in changeset.
Use external repository mirrors in build (#6094)

We've been bitten by external repository fluctuation for a long time.

This PR makes most of tests use repository mirrors set up by ourselves

via init script and system property.

There're still some tests not switching to mirrors, which would be fixed

in follow-up commits.

  1. … 99 more files in changeset.
Expose deprecation warning messages and stacktraces via build operations (#5881)

Expose deprecation warnings as operation progress events

- introduce split of message, warning and advice

- make deprecation progress events immutable

- rework deprecation handling/messages to support more a richer model

- update build operation progress model

- tweak existing deprecation warnings to match new model

- Add performance test + make stacktrace calculation for build ops lazy

- Always include a trace with FeatureUsage now that its always required

  1. … 65 more files in changeset.
Make incremental compilation the default.

    • -4
    • +0
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 23 more files in changeset.
Delete empty package directories

When all classes of a package have been removed,

the package directory in the output directory

will now be removed as well. This ensures that

the resulting JAR will be byte-for-byte equivalent

to a clean build.

    • -0
    • +24
    ./tasks/compile/JavaCompileIntegrationTest.groovy
  1. … 5 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
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
    • -1
    • +6
    ./tasks/compile/IsolatingIncrementalAnnotationProcessingIntegrationTest.groovy
    • -5
    • +0
    ./tasks/compile/JavaAnnotationProcessingIntegrationTest.groovy
    • -1
    • +0
    ./tasks/compile/JavaCompileAvoidanceWithBuildCacheServiceIntegrationTest.groovy
  1. … 7 more files in changeset.
Fix annotation processor discovery file leak

On Java 8 and below, the default annotation processor

discovery of javac leaks file handles. This is now fixed

by always using our own discovery, which we had introduced

for incremental annotation processing.

This also uncovered some discrepancies how our compiler worked

with and without incremental compilation. It now behaves consistently.

    • -1
    • +1
    ./tasks/compile/AbstractIncrementalAnnotationProcessingIntegrationTest.groovy
  1. … 16 more files in changeset.
Use daemon by default when forking from embedded executor

The Play! integration tests always fork a new process

so that they can cancel it. The embedded executor was

using no-daemon mode when asked for a forking handle.

This is now changed to use a daemon instead, greatly

speeding up the Play! integreation tests in embedded

mode.

I stumbled over a bug in our module registry that made

it impossible to run anything in IntelliJ in embedded

mode that used a type from the "plugins" project.

I suspect that some "requireDistribution" usages might

be just because of this bug. We should definitely check that.

There was also some inconsistency in how the embedded executor

handled jvm args and environment variables when it forked a

process. This went unnoticed because it wasn't using the daemon

and the arguments it was missing were to work around issues in

daemon mode. This is now fixed by extending the daemon executor.

    • -0
    • +10
    ./tasks/compile/JavaCompileJavaVersionIntegrationTest.groovy
  1. … 9 more files in changeset.