Merge "Fix some deprecated usage."
diff --git a/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy
index cc1b43b..5d07450 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/AppPlugin.groovy
@@ -215,12 +215,12 @@
             createTasksForDefaultBuild()
         } else {
             // there'll be more than one test app, so we need a top level assembleTest
-            assembleTest = project.tasks.add("assembleTest")
+            assembleTest = project.tasks.create("assembleTest")
             assembleTest.group = BasePlugin.BUILD_GROUP
             assembleTest.description = "Assembles all the Test applications"
 
             // same for the test task
-            testTask = project.tasks.add(INSTRUMENTATION_TEST, AndroidReportTask)
+            testTask = project.tasks.create(INSTRUMENTATION_TEST, AndroidReportTask)
             testTask.group = JavaBasePlugin.VERIFICATION_GROUP
             testTask.description = "Installs and runs instrumentation tests for all flavors"
             testTask.reportType = ReportType.MULTI_FLAVOR
@@ -512,7 +512,7 @@
     private Task createAssembleTask(ProductFlavorData[] flavorDataList) {
         String name = ProductFlavorData.getFlavoredName(flavorDataList, true)
 
-        def assembleTask = project.tasks.add("assemble${name}")
+        def assembleTask = project.tasks.create("assemble${name}")
         assembleTask.description = "Assembles all builds for flavor ${name}"
         assembleTask.group = "Build"
 
diff --git a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
index fcecb46..dc80790 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
@@ -80,13 +80,13 @@
 import org.gradle.api.artifacts.SelfResolvingDependency
 import org.gradle.api.artifacts.result.ResolvedDependencyResult
 import org.gradle.api.artifacts.result.ResolvedModuleVersionResult
-import org.gradle.api.internal.plugins.ProcessResources
 import org.gradle.api.logging.LogLevel
 import org.gradle.api.plugins.JavaBasePlugin
 import org.gradle.api.plugins.JavaPlugin
 import org.gradle.api.tasks.Copy
 import org.gradle.api.tasks.compile.JavaCompile
 import org.gradle.internal.reflect.Instantiator
+import org.gradle.language.jvm.tasks.ProcessResources
 import org.gradle.tooling.BuildException
 import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
 import org.gradle.util.GUtil
@@ -155,11 +155,11 @@
         project.tasks.assemble.description =
             "Assembles all variants of all applications and secondary packages."
 
-        uninstallAll = project.tasks.add("uninstallAll")
+        uninstallAll = project.tasks.create("uninstallAll")
         uninstallAll.description = "Uninstall all applications."
         uninstallAll.group = INSTALL_GROUP
 
-        deviceCheck = project.tasks.add("deviceCheck")
+        deviceCheck = project.tasks.create("deviceCheck")
         deviceCheck.description = "Runs all checks that requires a connected device."
         deviceCheck.group = JavaBasePlugin.VERIFICATION_GROUP
 
@@ -324,7 +324,7 @@
 
     protected void createProcessManifestTask(BaseVariantData variantData,
                                              String manifestOurDir) {
-        def processManifestTask = project.tasks.add("process${variantData.name}Manifest",
+        def processManifestTask = project.tasks.create("process${variantData.name}Manifest",
                 ProcessAppManifest)
         variantData.processManifestTask = processManifestTask
         processManifestTask.dependsOn variantData.prepareDependenciesTask
@@ -367,7 +367,7 @@
 
     protected void createProcessTestManifestTask(BaseVariantData variantData,
                                                  String manifestOurDir) {
-        def processTestManifestTask = project.tasks.add("process${variantData.name}TestManifest",
+        def processTestManifestTask = project.tasks.create("process${variantData.name}TestManifest",
                 ProcessTestManifest)
         variantData.processManifestTask = processTestManifestTask
         processTestManifestTask.dependsOn variantData.prepareDependenciesTask
@@ -404,7 +404,7 @@
     protected void createRenderscriptTask(BaseVariantData variantData) {
         VariantConfiguration config = variantData.variantConfiguration
 
-        def renderscriptTask = project.tasks.add("compile${variantData.name}Renderscript",
+        def renderscriptTask = project.tasks.create("compile${variantData.name}Renderscript",
                 RenderscriptCompile)
         variantData.renderscriptCompileTask = renderscriptTask
 
@@ -434,7 +434,7 @@
 
     protected void createMergeResourcesTask(BaseVariantData variantData, String location,
                                             boolean process9Patch) {
-        def mergeResourcesTask = project.tasks.add("merge${variantData.name}Resources",
+        def mergeResourcesTask = project.tasks.create("merge${variantData.name}Resources",
                 MergeResources)
         variantData.mergeResourcesTask = mergeResourcesTask
 
@@ -459,7 +459,7 @@
             location = "$project.buildDir/assets/$variantData.dirName"
         }
 
-        def mergeAssetsTask = project.tasks.add("merge${variantData.name}Assets", MergeAssets)
+        def mergeAssetsTask = project.tasks.create("merge${variantData.name}Assets", MergeAssets)
         variantData.mergeAssetsTask = mergeAssetsTask
 
         mergeAssetsTask.dependsOn variantData.prepareDependenciesTask
@@ -475,7 +475,7 @@
     }
 
     protected void createBuildConfigTask(BaseVariantData variantData) {
-        def generateBuildConfigTask = project.tasks.add(
+        def generateBuildConfigTask = project.tasks.create(
                 "generate${variantData.name}BuildConfig", GenerateBuildConfig)
         variantData.generateBuildConfigTask = generateBuildConfigTask
 
@@ -512,7 +512,7 @@
     }
 
     protected void createProcessResTask(BaseVariantData variantData, final String symbolLocation) {
-        def processResources = project.tasks.add("process${variantData.name}Resources",
+        def processResources = project.tasks.create("process${variantData.name}Resources",
                 ProcessAndroidResources)
         variantData.processResourcesTask = processResources
         processResources.dependsOn variantData.processManifestTask, variantData.mergeResourcesTask, variantData.mergeAssetsTask
@@ -566,7 +566,7 @@
     protected void createProcessJavaResTask(BaseVariantData variantData) {
         VariantConfiguration variantConfiguration = variantData.variantConfiguration
 
-        Copy processResources = project.tasks.add("process${variantData.name}JavaRes",
+        Copy processResources = project.tasks.create("process${variantData.name}JavaRes",
                 ProcessResources);
         variantData.processJavaResources = processResources
 
@@ -591,7 +591,7 @@
     protected void createAidlTask(BaseVariantData variantData) {
         VariantConfiguration variantConfiguration = variantData.variantConfiguration
 
-        def compileTask = project.tasks.add("compile${variantData.name}Aidl", AidlCompile)
+        def compileTask = project.tasks.create("compile${variantData.name}Aidl", AidlCompile)
         variantData.aidlCompileTask = compileTask
         variantData.aidlCompileTask.dependsOn variantData.prepareDependenciesTask
 
@@ -611,7 +611,7 @@
 
     protected void createCompileTask(BaseVariantData variantData,
                                      BaseVariantData testedVariantData) {
-        def compileTask = project.tasks.add("compile${variantData.name}", JavaCompile)
+        def compileTask = project.tasks.create("compile${variantData.name}", JavaCompile)
         variantData.javaCompileTask = compileTask
         compileTask.dependsOn variantData.processResourcesTask, variantData.generateBuildConfigTask, variantData.aidlCompileTask
 
@@ -732,7 +732,7 @@
         }
 
         // create the check task for this test
-        def testFlavorTask = project.tasks.add(
+        def testFlavorTask = project.tasks.create(
                 mainTestTask ? INSTRUMENTATION_TEST : "$INSTRUMENTATION_TEST${testedVariantData.name}",
                 mainTestTask ? TestLibraryTask : TestFlavorTask)
         testFlavorTask.description = "Installs and runs the tests for Build ${testedVariantData.name}."
@@ -791,7 +791,7 @@
     protected void addPackageTasks(ApkVariantData variantData, Task assembleTask) {
         // Add a dex task
         def dexTaskName = "dex${variantData.name}"
-        def dexTask = project.tasks.add(dexTaskName, Dex)
+        def dexTask = project.tasks.create(dexTaskName, Dex)
         variantData.dexTask = dexTask
         dexTask.dependsOn variantData.javaCompileTask
 
@@ -809,7 +809,7 @@
         dexTask.dexOptions = extension.dexOptions
 
         // Add a task to generate application package
-        def packageApp = project.tasks.add("package${variantData.name}", PackageApplication)
+        def packageApp = project.tasks.create("package${variantData.name}", PackageApplication)
         variantData.packageApplicationTask = packageApp
         packageApp.dependsOn variantData.processResourcesTask, dexTask, variantData.processJavaResources
 
@@ -836,7 +836,7 @@
         if (sc != null) {
             ValidateSigningTask validateSigningTask = validateSigningTaskMap.get(sc)
             if (validateSigningTask == null) {
-                validateSigningTask = project.tasks.add("validate${sc.name.capitalize()}Signing",
+                validateSigningTask = project.tasks.create("validate${sc.name.capitalize()}Signing",
                     ValidateSigningTask)
                 validateSigningTask.plugin = this
                 validateSigningTask.signingConfig = sc
@@ -862,7 +862,7 @@
         if (signedApk) {
             if (variantData.zipAlign) {
                 // Add a task to zip align application package
-                def zipAlignTask = project.tasks.add("zipalign${variantData.name}", ZipAlign)
+                def zipAlignTask = project.tasks.create("zipalign${variantData.name}", ZipAlign)
                 variantData.zipAlignTask = zipAlignTask
 
                 zipAlignTask.dependsOn packageApp
@@ -879,7 +879,7 @@
             }
 
             // Add a task to install the application package
-            def installTask = project.tasks.add("install${variantData.name}", InstallTask)
+            def installTask = project.tasks.create("install${variantData.name}", InstallTask)
             installTask.description = "Installs the " + variantData.description
             installTask.group = INSTALL_GROUP
             installTask.dependsOn appTask
@@ -891,7 +891,7 @@
 
         // Add an assemble task
         if (assembleTask == null) {
-            assembleTask = project.tasks.add("assemble${variantData.name}")
+            assembleTask = project.tasks.create("assemble${variantData.name}")
             assembleTask.description = "Assembles the " + variantData.description
             assembleTask.group = org.gradle.api.plugins.BasePlugin.BUILD_GROUP
         }
@@ -899,7 +899,7 @@
         variantData.assembleTask = assembleTask
 
         // add an uninstall task
-        def uninstallTask = project.tasks.add("uninstall${variantData.name}", UninstallTask)
+        def uninstallTask = project.tasks.create("uninstall${variantData.name}", UninstallTask)
         uninstallTask.description = "Uninstalls the " + variantData.description
         uninstallTask.group = INSTALL_GROUP
         uninstallTask.variant = variantData
@@ -910,12 +910,12 @@
     }
 
     private void createReportTasks() {
-        def dependencyReportTask = project.tasks.add("androidDependencies", DependencyReportTask)
+        def dependencyReportTask = project.tasks.create("androidDependencies", DependencyReportTask)
         dependencyReportTask.setDescription("Displays the Android dependencies of the project")
         dependencyReportTask.setVariants(variantDataList)
         dependencyReportTask.setGroup("Android")
 
-        def signingReportTask = project.tasks.add("signingReport", SigningReportTask)
+        def signingReportTask = project.tasks.create("signingReport", SigningReportTask)
         signingReportTask.setDescription("Displays the signing info for each variant")
         signingReportTask.setVariants(variantDataList)
         signingReportTask.setGroup("Android")
@@ -924,7 +924,7 @@
     protected void createPrepareDependenciesTask(
             @NonNull BaseVariantData variantData,
             @NonNull List<ConfigurationDependencies> configDependenciesList) {
-        def prepareDependenciesTask = project.tasks.add("prepare${variantData.name}Dependencies",
+        def prepareDependenciesTask = project.tasks.create("prepare${variantData.name}Dependencies",
                 PrepareDependenciesTask)
         variantData.prepareDependenciesTask = prepareDependenciesTask
 
@@ -980,7 +980,7 @@
 
                 String bundleName = GUtil.toCamelCase(androidDependency.name.replaceAll("\\:", " "))
 
-                def prepareLibraryTask = project.tasks.add("prepare${bundleName}Library",
+                def prepareLibraryTask = project.tasks.create("prepare${bundleName}Library",
                         PrepareLibraryTask)
                 prepareLibraryTask.description = "Prepare ${androidDependency.name}"
                 prepareLibraryTask.bundle = androidDependency.bundle
diff --git a/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy
index 3441c58..a593c80 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/LibraryPlugin.groovy
@@ -205,7 +205,7 @@
         createCompileTask(variantData, null/*testedVariant*/)
 
         // jar the classes.
-        Jar jar = project.tasks.add("package${buildTypeData.buildType.name.capitalize()}Jar", Jar);
+        Jar jar = project.tasks.create("package${buildTypeData.buildType.name.capitalize()}Jar", Jar);
         jar.dependsOn variantData.javaCompileTask, variantData.processJavaResources
         jar.from(variantData.javaCompileTask.outputs);
         jar.from(variantData.processJavaResources.destinationDir)
@@ -218,7 +218,7 @@
         jar.exclude(packageName + "/BuildConfig.class")
 
         // package the aidl files into the bundle folder
-        Sync packageAidl = project.tasks.add("package${variantData.name}Aidl", Sync)
+        Sync packageAidl = project.tasks.create("package${variantData.name}Aidl", Sync)
         // packageAidl from 3 sources. the order is important to make sure the override works well.
         packageAidl.from(defaultConfigData.sourceSet.aidl.srcDirs,
                 buildTypeData.sourceSet.aidl.srcDirs).include("**/*.aidl")
@@ -226,7 +226,8 @@
                 "$project.buildDir/$DIR_BUNDLES/${variantData.dirName}/$SdkConstants.FD_AIDL"))
 
         // package the renderscript header files files into the bundle folder
-        Sync packageRenderscript = project.tasks.add("package${variantData.name}Renderscript", Sync)
+        Sync packageRenderscript = project.tasks.create("package${variantData.name}Renderscript",
+                Sync)
         // package from 3 sources. the order is important to make sure the override works well.
         packageRenderscript.from(defaultConfigData.sourceSet.renderscript.srcDirs,
                 buildTypeData.sourceSet.renderscript.srcDirs).include("**/*.rsh")
@@ -234,12 +235,12 @@
                 "$project.buildDir/$DIR_BUNDLES/${variantData.dirName}/$SdkConstants.FD_RENDERSCRIPT"))
 
         // package the renderscript header files files into the bundle folder
-        Sync packageLocalJar = project.tasks.add("package${variantData.name}LocalJar", Sync)
+        Sync packageLocalJar = project.tasks.create("package${variantData.name}LocalJar", Sync)
         packageLocalJar.from(getLocalJarFileList(configDependencies))
         packageLocalJar.into(project.file(
                 "$project.buildDir/$DIR_BUNDLES/${variantData.dirName}/$SdkConstants.LIBS_FOLDER"))
 
-        Zip bundle = project.tasks.add("bundle${variantData.name}", Zip)
+        Zip bundle = project.tasks.create("bundle${variantData.name}", Zip)
         bundle.dependsOn jar, packageAidl, packageRenderscript, packageLocalJar
         bundle.setDescription("Assembles a bundle containing the library in ${variantData.name}.");
         bundle.destinationDir = project.file("$project.buildDir/libs")