Upgrade to Gradle 7.1

Test: ./gradlew tasks
Change-Id: I47232fe075727a9303d1bb497e33f9973f6c2f1a
diff --git a/buildSrc/src/main/kotlin/androidx/build/SdkResourceGenerator.kt b/buildSrc/src/main/kotlin/androidx/build/SdkResourceGenerator.kt
index 53ffc5c..b429ae5 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SdkResourceGenerator.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SdkResourceGenerator.kt
@@ -24,12 +24,12 @@
 import org.gradle.api.Project
 import org.gradle.api.artifacts.repositories.MavenArtifactRepository
 import org.gradle.api.file.RegularFileProperty
-import org.gradle.api.plugins.JavaPluginConvention
+import org.gradle.api.plugins.JavaPluginExtension
 import org.gradle.api.tasks.Input
 import org.gradle.api.tasks.InputFile
 import org.gradle.api.tasks.OutputFile
 import org.gradle.api.tasks.TaskAction
-import org.gradle.kotlin.dsl.getPlugin
+import org.gradle.kotlin.dsl.getByType
 import java.io.File
 import java.io.PrintWriter
 
@@ -123,8 +123,8 @@
             project.tasks.named("compileTestJava").configure { it.dependsOn(provider) }
             project.tasks.named("processTestResources").configure { it.dependsOn(provider) }
 
-            val convention = project.convention.getPlugin<JavaPluginConvention>()
-            val resources = convention.sourceSets.getByName("test").resources
+            val extension = project.extensions.getByType<JavaPluginExtension>()
+            val resources = extension.sourceSets.getByName("test").resources
             resources.srcDirs(setOf(resources.srcDirs, generatedDirectory))
         }
     }
diff --git a/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt b/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
index 5bcc7646..9168290 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
@@ -25,11 +25,11 @@
 import org.gradle.api.attributes.Usage
 import org.gradle.api.component.AdhocComponentWithVariants
 import org.gradle.api.file.DuplicatesStrategy
-import org.gradle.api.plugins.JavaPluginConvention
+import org.gradle.api.plugins.JavaPluginExtension
 import org.gradle.api.tasks.TaskProvider
 import org.gradle.api.tasks.bundling.Jar
 import org.gradle.kotlin.dsl.extra
-import org.gradle.kotlin.dsl.getPlugin
+import org.gradle.kotlin.dsl.getByType
 import org.gradle.kotlin.dsl.named
 import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
 
@@ -70,8 +70,8 @@
 fun Project.configureSourceJarForJava() {
     val sourceJar = tasks.register("sourceJar", Jar::class.java) {
         it.archiveClassifier.set("sources")
-        val convention = convention.getPlugin<JavaPluginConvention>()
-        it.from(convention.sourceSets.getByName("main").allSource.srcDirs)
+        val extension = extensions.getByType<JavaPluginExtension>()
+        it.from(extension.sourceSets.getByName("main").allSource.srcDirs)
         // Do not allow source files with duplicate names, information would be lost otherwise.
         it.duplicatesStrategy = DuplicatesStrategy.FAIL
     }
diff --git a/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt b/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt
index 46c5574..807e8f4 100644
--- a/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt
@@ -31,8 +31,8 @@
 import com.android.build.gradle.tasks.ProcessLibraryManifest
 import org.gradle.api.GradleException
 import org.gradle.api.Project
-import org.gradle.api.plugins.JavaPluginConvention
-import org.gradle.kotlin.dsl.getPlugin
+import org.gradle.api.plugins.JavaPluginExtension
+import org.gradle.kotlin.dsl.getByType
 
 sealed class ApiTaskConfig
 data class LibraryApiTaskConfig(val library: LibraryExtension) : ApiTaskConfig()
@@ -176,8 +176,8 @@
                 processManifest = null
             }
             is JavaApiTaskConfig -> {
-                val javaPluginConvention = convention.getPlugin<JavaPluginConvention>()
-                val mainSourceSet = javaPluginConvention.sourceSets.getByName("main")
+                val javaExtension = extensions.getByType<JavaPluginExtension>()
+                val mainSourceSet = javaExtension.sourceSets.getByName("main")
                 javaInputs = JavaCompileInputs.fromSourceSet(mainSourceSet, this)
                 processManifest = null
             }
@@ -208,8 +208,8 @@
         throw GradleException("Expected KMP project but got ${project.name}")
     }
 
-    val javaPluginConvention = convention.getPlugin<JavaPluginConvention>()
-    val mainSourceSet = javaPluginConvention.sourceSets.getByName("main")
+    val javaExtension = extensions.getByType<JavaPluginExtension>()
+    val mainSourceSet = javaExtension.sourceSets.getByName("main")
     val dependencyClasspath = mainSourceSet.compileClasspath
     val mainSourcePaths = project.files(
         provider { mainSourceSet.allSource.srcDirs }
diff --git a/development/build_log_simplifier/messages.ignore b/development/build_log_simplifier/messages.ignore
index ff80609..178b689 100644
--- a/development/build_log_simplifier/messages.ignore
+++ b/development/build_log_simplifier/messages.ignore
@@ -135,13 +135,11 @@
 To honour the JVM settings for this build a single\-use Daemon process will be forked\. See https://docs\.gradle\.org/[0-9]+\.[0-9]+/userguide/gradle_daemon\.html\#sec:disabling_the_daemon\.
 Starting a Gradle Daemon \(subsequent builds will be faster\)
 Downloading file\:\$SUPPORT\/gradle\/wrapper\/.*
-\.\.\.\.\.\.\.\.\.\.10%\.\.\.\.\.\.\.\.\.\.\.20%\.\.\.\.\.\.\.\.\.\.\.30%\.\.\.\.\.\.\.\.\.\.40%\.\.\.\.\.\.\.\.\.\.\.50%\.\.\.\.\.\.\.\.\.\.\.60%\.\.\.\.\.\.\.\.\.\.\.70%\.\.\.\.\.\.\.\.\.\.80%\.\.\.\.\.\.\.\.\.\.\.90%\.\.\.\.\.\.\.\.\.\.\.100%
+\.\.\.\.\.\.\.\.\.\.10%\.\.\.\.\.\.\.\.\.\.\.20%\.\.\.\.\.\.\.\.\.\.\.30%\.\.\.\.\.\.\.\.\.\.40%\.\.\.\.\.\.\.\.\.\.\.50%\.\.\.\.\.\.\.\.\.\.\.60%\.\.\.\.\.\.\.\.\.\.70%\.\.\.\.\.\.\.\.\.\.\.80%\.\.\.\.\.\.\.\.\.\.\.90%\.\.\.\.\.\.\.\.\.\.\.100%
 Welcome to Gradle .*
 Here are the highlights of this release:
-\- File system watching enabled by default
-\- Support for running with and building Java 16 projects
-\- Native support for Apple Silicon processors
-\- Dependency catalog feature preview
+\- Faster incremental Java compilation
+\- Easier source set configuration in the Kotlin DSL
 For more details see .*
 To honour the JVM settings for this build a single\-use Daemon process will be forked\. See https://docs\.gradle\.org/[0-9]+\.[0-9]+\.[0-9]+/userguide/gradle_daemon\.html\#sec:disabling_the_daemon\.
 Daemon will be stopped at the end of the build
@@ -1162,4 +1160,6 @@
 \$SUPPORT/wear/compose/material/benchmark/src/androidTest/AndroidManifest\.xml:[0-9]+:[0-9]+\-[0-9]+:[0-9]+ Warning:
 # > Configure project :ads-identifier
 WARNING\:The option setting \'android\.experimental\.enableArtProfiles\=true\' is experimental\.
-The current default is \'false\'\.
\ No newline at end of file
+The current default is \'false\'\.
+# ./gradlew tasks warns as we have warnings present
+You can use \'\-\-warning\-mode all\' to show the individual deprecation warnings and determine if they come from your own scripts or plugins\.
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index bddfbb1..bacf8b8 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -5,4 +5,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=../../../../tools/external/gradle/gradle-7.0-bin.zip
+distributionUrl=../../../../tools/external/gradle/gradle-7.1-bin.zip
diff --git a/lifecycle/lifecycle-compiler/build.gradle b/lifecycle/lifecycle-compiler/build.gradle
index d272608..351a6dd 100644
--- a/lifecycle/lifecycle-compiler/build.gradle
+++ b/lifecycle/lifecycle-compiler/build.gradle
@@ -40,7 +40,7 @@
     dependsOn(compileJava)
     source "src/test/test-data/lib/src"
     classpath = project.compileJava.classpath
-    destinationDir = new File(project.buildDir, "test-data/lib/classes")
+    destinationDirectory.set(new File(project.buildDir, "test-data/lib/classes"))
 }
 
 tasks.register("jarTestLibrarySource", Jar).configure {
diff --git a/playground-common/gradle/wrapper/gradle-wrapper.properties b/playground-common/gradle/wrapper/gradle-wrapper.properties
index 03df294..ddac36c 100644
--- a/playground-common/gradle/wrapper/gradle-wrapper.properties
+++ b/playground-common/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-all.zip
diff --git a/room/room-compiler/build.gradle b/room/room-compiler/build.gradle
index 04361942..d2b5199 100644
--- a/room/room-compiler/build.gradle
+++ b/room/room-compiler/build.gradle
@@ -131,7 +131,7 @@
     outputs.dir(outFolder)
     inputs.file("$projectDir/SQLite.g4")
     classpath configurations.compileClasspath
-    main "org.antlr.v4.Tool"
+    mainClass.set("org.antlr.v4.Tool")
     args "SQLite.g4", "-visitor", "-o", new File(outFolder, "androidx/room/parser").path,
             "-package", "androidx.room.parser"
 }