Add api-database as implementation dependency and use it for building

This only ensure that we can compile and do not yet look at references
and prevent inlining of existing calls.

Bug: 190368382
Bug: 188388130
Change-Id: Icee3110c630fc7089cc2203ab3a295d85b515256
diff --git a/build.gradle b/build.gradle
index 273e192..f69b505 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,13 +11,6 @@
 import tasks.DownloadDependency
 import tasks.GetJarsFromConfiguration
 import utils.Utils
-import org.gradle.api.tasks.testing.logging.TestExceptionFormat
-import org.gradle.api.tasks.testing.logging.TestLogEvent
-import org.gradle.api.tasks.testing.TestOutputEvent
-
-import java.nio.charset.StandardCharsets
-import java.nio.file.Files
-import java.nio.file.StandardOpenOption
 
 buildscript {
     repositories {
@@ -255,6 +248,7 @@
     implementation group: 'org.ow2.asm', name: 'asm-tree', version: asmVersion
     implementation group: 'org.ow2.asm', name: 'asm-analysis', version: asmVersion
     implementation group: 'org.ow2.asm', name: 'asm-util', version: asmVersion
+    implementation files('third_party/android_jar/api-database/api-database.jar')
     jdk11TimeTestsCompile group: 'org.testng', name: 'testng', version: testngVersion
     examplesTestNGRunnerCompile group: 'org.testng', name: 'testng', version: testngVersion
     testCompile sourceSets.examples.output
diff --git a/src/test/java/com/android/tools/r8/apimodel/AndroidApiDatabaseBuilderGeneratorTest.java b/src/test/java/com/android/tools/r8/apimodel/AndroidApiDatabaseBuilderGeneratorTest.java
index c69eff3..d85e3e5 100644
--- a/src/test/java/com/android/tools/r8/apimodel/AndroidApiDatabaseBuilderGeneratorTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/AndroidApiDatabaseBuilderGeneratorTest.java
@@ -27,6 +27,7 @@
 import com.android.tools.r8.utils.ListUtils;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.TraversalContinuation;
+import com.android.tools.r8.utils.ZipUtils;
 import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.google.common.collect.ImmutableList;
@@ -202,10 +203,11 @@
                       descriptor(AndroidApiDatabaseBuilderTemplate.class),
                       generatedMainDescriptor())
                   .transform())
-          .addLibraryFiles(generated)
-          // TODO(b/190368382): This will change when databasebuilder is included in deps.
-          .addLibraryFiles(ToolHelper.R8_WITHOUT_DEPS_JAR, ToolHelper.DEPS)
-          .addLibraryFiles(ToolHelper.getJava8RuntimeJar())
+          .addLibraryFiles(
+              generated,
+              ToolHelper.R8_WITHOUT_DEPS_JAR,
+              getDepsWithoutGeneratedApiModelClasses(),
+              ToolHelper.getJava8RuntimeJar())
           .run(TestRuntime.getSystemRuntime(), testClass)
           .apply(
               result -> {
@@ -218,6 +220,22 @@
     }
   }
 
+  private static Path getDepsWithoutGeneratedApiModelClasses() throws IOException {
+    Path tempDeps = Files.createTempDirectory("temp_deps");
+    ZipUtils.unzip(
+        ToolHelper.DEPS.toString(),
+        tempDeps.toFile(),
+        entry -> {
+          if (entry.getName().startsWith("com/android/tools/r8/apimodel/")) {
+            return false;
+          }
+          return true;
+        });
+    Path modifiedDeps = Files.createTempFile("modified_deps", ".jar");
+    ZipUtils.zip(modifiedDeps, tempDeps);
+    return modifiedDeps;
+  }
+
   private static String getExpected(List<ParsedApiClass> parsedApiClasses, boolean abort) {
     List<String> expected = new ArrayList<>();
     parsedApiClasses.forEach(