anchor.diff:  
   This allows us to link:https://github.com/gradle/gradle/blob/7b047c7cbb4932743243a76123f5347be6d07856/subprojects/jacoco/src/main/java/org/gradle/testing/jacoco/plugins/JacocoPluginExtension.java#L138-L157[model the JaCoCo Java agent], thus declaring the necessary JVM arguments and providing the inputs and outputs to Gradle:
   
  +====
   [source,java]
   .JacocoAgent.java
   ----
  
positive.code: > gradle processTemplates
  include::{samplesPath}/userguide/tasks/incrementalBuild/customTaskClass/customTaskClassWithInputOutputAnnotationsUpToDate.out[]
  ----
  
  There’s plenty to talk about in this example, so let’s work through each of the input and output properties in turn:
  
  
negative.code: 
  test.getJvmArgumentProviders().add(new JacocoAgent(extension));
  ----
  ====
  
  For this to work, `link:{groovyDslPath}/org.gradle.testing.jacoco.plugins.JacocoTaskExtension.html[JacocoTaskExtension]` needs to have the correct input and output annotations.
  
  