More DalvikRunner cleanup.

Remove the now-unnecessary jsr305 and guava build dependencies.

Move TestActivity.java -- which is only needed at *run* time -- out into
lib/, which lets us simplify the makefile.

Pass the dalvik.annotation.* source files to javac(1) (at *run* time) so
we don't need the run-time dependency on core-intermediates [that I'd
already removed in a successful attempt to find out why we had the
dependency].

We need to remove all uses of those useless annotations from the harmony
tests so we can get back in sync with upstream, but now also so that we
can clean up this part of DalvikRunner.
diff --git a/libcore/tools/runner/Android.mk b/libcore/tools/runner/Android.mk
index 2fb3591..b208219 100644
--- a/libcore/tools/runner/Android.mk
+++ b/libcore/tools/runner/Android.mk
@@ -1,74 +1,17 @@
 LOCAL_PATH:= $(call my-dir)
 
+# build DalvikRunner from the source under java/.
 include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
-        java/dalvik/runner/Aapt.java \
-        java/dalvik/runner/Adb.java \
-        java/dalvik/runner/ActivityMode.java \
-        java/dalvik/runner/CaliperFinder.java \
-        java/dalvik/runner/CaliperRunner.java \
-        java/dalvik/runner/Classpath.java \
-        java/dalvik/runner/CodeFinder.java \
-        java/dalvik/runner/Command.java \
-        java/dalvik/runner/CommandFailedException.java \
-        java/dalvik/runner/DalvikRunner.java \
-        java/dalvik/runner/DeviceDalvikVm.java \
-        java/dalvik/runner/Driver.java \
-        java/dalvik/runner/Dx.java \
-        java/dalvik/runner/Environment.java \
-        java/dalvik/runner/EnvironmentDevice.java \
-        java/dalvik/runner/EnvironmentHost.java \
-        java/dalvik/runner/ExpectedResult.java \
-        java/dalvik/runner/JUnitFinder.java \
-        java/dalvik/runner/JUnitRunner.java \
-        java/dalvik/runner/JavaVm.java \
-        java/dalvik/runner/Javac.java \
-        java/dalvik/runner/JtregFinder.java \
-        java/dalvik/runner/JtregRunner.java \
-        java/dalvik/runner/MainFinder.java \
-        java/dalvik/runner/MainRunner.java \
-        java/dalvik/runner/Md5Cache.java \
-        java/dalvik/runner/Mkdir.java \
-        java/dalvik/runner/Mode.java \
-        java/dalvik/runner/NamingPatternCodeFinder.java \
-        java/dalvik/runner/Option.java \
-        java/dalvik/runner/OptionParser.java \
-        java/dalvik/runner/Result.java \
-        java/dalvik/runner/Rm.java \
-        java/dalvik/runner/Runner.java \
-        java/dalvik/runner/Strings.java \
-        java/dalvik/runner/TestProperties.java \
-        java/dalvik/runner/TestRun.java \
-        java/dalvik/runner/TestRunner.java \
-        java/dalvik/runner/Threads.java \
-        java/dalvik/runner/Vm.java \
-        java/dalvik/runner/XmlReportPrinter.java \
-
+LOCAL_SRC_FILES :=  $(call all-java-files-under,java)
 LOCAL_MODULE:= dalvik_runner
-LOCAL_STATIC_JAVA_LIBRARIES := jsr305 guava caliper javatest jh jtreg kxml2-2.3.0
-
+LOCAL_STATIC_JAVA_LIBRARIES := caliper javatest jh jtreg kxml2-2.3.0
 # TODO this only works when junit is already built...
 LOCAL_JAVA_LIBRARIES := junit
-
 LOCAL_JAVACFLAGS := -Werror -Xlint:unchecked
-
 include $(BUILD_HOST_JAVA_LIBRARY)
 
 include $(call all-subdir-makefiles)
 
-# prebuilt jsr305.jar
-# TODO: do we need this any more? caliper.jar has a jarjar'ed copy.
-include $(CLEAR_VARS)
-LOCAL_PREBUILT_JAVA_LIBRARIES := jsr305:lib/jsr305.jar
-include $(BUILD_HOST_PREBUILT)
-
-# prebuilt guava.jar
-# TODO: do we need this any more? caliper.jar has a jarjar'ed copy.
-include $(CLEAR_VARS)
-LOCAL_PREBUILT_JAVA_LIBRARIES := guava:lib/guava.jar
-include $(BUILD_HOST_PREBUILT)
-
 # prebuilt caliper.jar
 include $(CLEAR_VARS)
 LOCAL_PREBUILT_JAVA_LIBRARIES := caliper:lib/caliper.jar
diff --git a/libcore/tools/runner/java/dalvik/runner/ActivityMode.java b/libcore/tools/runner/java/dalvik/runner/ActivityMode.java
index dd7c420..b2b4a3b 100644
--- a/libcore/tools/runner/java/dalvik/runner/ActivityMode.java
+++ b/libcore/tools/runner/java/dalvik/runner/ActivityMode.java
@@ -48,7 +48,7 @@
     }
 
     @Override protected void prepare(Set<File> testRunnerJava, Classpath testRunnerClasspath) {
-        testRunnerJava.add(new File(DalvikRunner.HOME_JAVA, "dalvik/runner/TestActivity.java"));
+        testRunnerJava.add(new File("dalvik/libcore/tools/runner/lib/TestActivity.java"));
         super.prepare(testRunnerJava, testRunnerClasspath);
     }
 
diff --git a/libcore/tools/runner/java/dalvik/runner/JavaVm.java b/libcore/tools/runner/java/dalvik/runner/JavaVm.java
index 561b0ce..2dfc3e7 100644
--- a/libcore/tools/runner/java/dalvik/runner/JavaVm.java
+++ b/libcore/tools/runner/java/dalvik/runner/JavaVm.java
@@ -18,6 +18,7 @@
 
 import java.io.File;
 import java.util.List;
+import java.util.Set;
 
 /**
  * A local Java virtual machine like Harmony or the RI.
@@ -34,7 +35,8 @@
         this.javaHome = javaHome;
     }
 
-    @Override protected void postCompileTestRunner() {}
+    @Override protected void postCompileTestRunner() {
+    }
 
     @Override protected void postCompileTest(TestRun testRun) {
     }
diff --git a/libcore/tools/runner/java/dalvik/runner/Mode.java b/libcore/tools/runner/java/dalvik/runner/Mode.java
index b4f851f..c2d6b14 100644
--- a/libcore/tools/runner/java/dalvik/runner/Mode.java
+++ b/libcore/tools/runner/java/dalvik/runner/Mode.java
@@ -18,6 +18,7 @@
 
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.FilenameFilter;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
@@ -61,6 +62,7 @@
      */
     protected final Classpath testRunnerClasspath = new Classpath();
 
+    // TODO: this should be an immutable collection.
     protected final Classpath testClasspath = Classpath.of(
             new File("dalvik/libcore/tools/runner/lib/jsr305.jar"),
             new File("dalvik/libcore/tools/runner/lib/guava.jar"),
@@ -69,8 +71,6 @@
             // dalvik/libcore/**/test/ for junit
             // TODO: jar up just the junit classes and drop the jar in our lib/ directory.
             new File("out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/classes.jar").getAbsoluteFile());
-            // framework/base for tests (TODO: for what exactly?)
-            //new File("out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar").getAbsoluteFile());
 
     Mode(Environment environment, long timeoutSeconds, File sdkJar) {
         this.environment = environment;
@@ -84,12 +84,25 @@
      */
     protected void prepare(Set<File> testRunnerJava, Classpath testRunnerClasspath) {
         this.testRunnerJava.add(new File(DalvikRunner.HOME_JAVA, "dalvik/runner/TestRunner.java"));
+        this.testRunnerJava.addAll(dalvikAnnotationSourceFiles());
         this.testRunnerJava.addAll(testRunnerJava);
         this.testRunnerClasspath.addAll(testRunnerClasspath);
         environment.prepare();
         compileTestRunner();
     }
 
+    private List<File> dalvikAnnotationSourceFiles() {
+        // Hopefully one day we'll strip the dalvik annotations out, but until then we need to make
+        // them available to javac(1).
+        File sourceDir = new File("dalvik/libcore/dalvik/src/main/java/dalvik/annotation");
+        File[] javaSourceFiles = sourceDir.listFiles(new FilenameFilter() {
+            public boolean accept(File dir, String filename) {
+                return filename.endsWith(".java");
+            }
+        });
+        return Arrays.asList(javaSourceFiles);
+    }
+
     private void compileTestRunner() {
         logger.fine("build testrunner");
 
@@ -165,13 +178,17 @@
         classpath.addAll(testClasspath);
         classpath.addAll(testRun.getRunnerClasspath());
 
+        Set<File> sourceFiles = new HashSet<File>();
+        sourceFiles.add(testRun.getTestJava());
+        sourceFiles.addAll(dalvikAnnotationSourceFiles());
+
         // compile the test case
         new Javac()
                 .bootClasspath(sdkJar)
                 .classpath(classpath)
                 .sourcepath(testRun.getTestDirectory())
                 .destination(testClassesDir)
-                .compile(testRun.getTestJava());
+                .compile(sourceFiles);
         postCompileTest(testRun);
         return true;
     }
diff --git a/libcore/tools/runner/java/dalvik/runner/TestActivity.java b/libcore/tools/runner/lib/TestActivity.java
similarity index 100%
rename from libcore/tools/runner/java/dalvik/runner/TestActivity.java
rename to libcore/tools/runner/lib/TestActivity.java