Fix vogar host mode.

Also addressing bdc's comments from change Ibc7cbc81, most
notably an import-ordering issues that impact many files.
diff --git a/libcore/tools/runner/java/vogar/Action.java b/libcore/tools/runner/java/vogar/Action.java
index 1e3de3e..190c457 100644
--- a/libcore/tools/runner/java/vogar/Action.java
+++ b/libcore/tools/runner/java/vogar/Action.java
@@ -16,9 +16,8 @@
 
 package vogar;
 
-import vogar.target.Runner;
-
 import java.io.File;
+import vogar.target.Runner;
 
 /**
  * A named job such as a test or benchmark run. This class tracks the resource
diff --git a/libcore/tools/runner/java/vogar/ActivityMode.java b/libcore/tools/runner/java/vogar/ActivityMode.java
index 4572b1d..795b6a2 100644
--- a/libcore/tools/runner/java/vogar/ActivityMode.java
+++ b/libcore/tools/runner/java/vogar/ActivityMode.java
@@ -16,12 +16,6 @@
 
 package vogar;
 
-import vogar.commands.Aapt;
-import vogar.commands.Command;
-import vogar.commands.Dx;
-import vogar.commands.Mkdir;
-import vogar.commands.Rm;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -32,6 +26,11 @@
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 import java.util.logging.Logger;
+import vogar.commands.Aapt;
+import vogar.commands.Command;
+import vogar.commands.Dx;
+import vogar.commands.Mkdir;
+import vogar.commands.Rm;
 
 /**
  * Runs an action in the context of an android.app.Activity on a device
diff --git a/libcore/tools/runner/java/vogar/CaliperFinder.java b/libcore/tools/runner/java/vogar/CaliperFinder.java
index d277ea3..3e2101d 100644
--- a/libcore/tools/runner/java/vogar/CaliperFinder.java
+++ b/libcore/tools/runner/java/vogar/CaliperFinder.java
@@ -16,11 +16,10 @@
 
 package vogar;
 
+import java.io.File;
 import vogar.target.CaliperRunner;
 import vogar.target.Runner;
 
-import java.io.File;
-
 /**
  * Create {@link Action}s for {@code .java} files with Caliper benchmarks in
  * them.
diff --git a/libcore/tools/runner/java/vogar/CodeFinder.java b/libcore/tools/runner/java/vogar/CodeFinder.java
index 7e357ab..4437848 100644
--- a/libcore/tools/runner/java/vogar/CodeFinder.java
+++ b/libcore/tools/runner/java/vogar/CodeFinder.java
@@ -16,10 +16,9 @@
 
 package vogar;
 
-import vogar.target.Runner;
-
 import java.io.File;
 import java.util.Set;
+import vogar.target.Runner;
 
 /**
  * A strategy for finding runnable things in a directory.
diff --git a/libcore/tools/runner/java/vogar/Console.java b/libcore/tools/runner/java/vogar/Console.java
index 953c660..f141cc9 100644
--- a/libcore/tools/runner/java/vogar/Console.java
+++ b/libcore/tools/runner/java/vogar/Console.java
@@ -60,8 +60,8 @@
     }
 
     /**
-     * Formats an alternating sequence of regular log messages and messages
-     * streamed from a foreign process.
+     * Formats a sequence of regular log messages with the output streamed from
+     * a foreign process.
      */
     private String logRecordToString(LogRecord logRecord) {
         String message = logRecord.getMessage();
diff --git a/libcore/tools/runner/java/vogar/DeviceDalvikVm.java b/libcore/tools/runner/java/vogar/DeviceDalvikVm.java
index 2f98793..fa96e82 100644
--- a/libcore/tools/runner/java/vogar/DeviceDalvikVm.java
+++ b/libcore/tools/runner/java/vogar/DeviceDalvikVm.java
@@ -16,11 +16,10 @@
 
 package vogar;
 
-import vogar.commands.Dx;
-
 import java.io.File;
 import java.util.List;
 import java.util.logging.Logger;
+import vogar.commands.Dx;
 
 /**
  * Execute actions on a Dalvik VM using an Android device or emulator.
diff --git a/libcore/tools/runner/java/vogar/Driver.java b/libcore/tools/runner/java/vogar/Driver.java
index f646fe8..8bcd86b 100644
--- a/libcore/tools/runner/java/vogar/Driver.java
+++ b/libcore/tools/runner/java/vogar/Driver.java
@@ -16,9 +16,6 @@
 
 package vogar;
 
-import vogar.commands.Command;
-import vogar.commands.Mkdir;
-
 import java.io.File;
 import java.util.Collection;
 import java.util.Collections;
@@ -36,6 +33,8 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.logging.Logger;
+import vogar.commands.Command;
+import vogar.commands.Mkdir;
 
 /**
  * Compiles, installs, runs and reports on actions.
diff --git a/libcore/tools/runner/java/vogar/Environment.java b/libcore/tools/runner/java/vogar/Environment.java
index 8ccfc7b..e149e0a 100644
--- a/libcore/tools/runner/java/vogar/Environment.java
+++ b/libcore/tools/runner/java/vogar/Environment.java
@@ -16,10 +16,9 @@
 
 package vogar;
 
-import vogar.commands.Rm;
-
 import java.io.File;
 import java.util.logging.Logger;
+import vogar.commands.Rm;
 
 /**
  * A target runtime environment such as a remote device or the local host
diff --git a/libcore/tools/runner/java/vogar/EnvironmentDevice.java b/libcore/tools/runner/java/vogar/EnvironmentDevice.java
index c49bbd9..b315ea1 100644
--- a/libcore/tools/runner/java/vogar/EnvironmentDevice.java
+++ b/libcore/tools/runner/java/vogar/EnvironmentDevice.java
@@ -16,9 +16,8 @@
 
 package vogar;
 
-import vogar.commands.Adb;
-
 import java.io.File;
+import vogar.commands.Adb;
 
 class EnvironmentDevice extends Environment {
     final Adb adb = new Adb();
diff --git a/libcore/tools/runner/java/vogar/EnvironmentHost.java b/libcore/tools/runner/java/vogar/EnvironmentHost.java
index e7ad4db..33a59e1 100644
--- a/libcore/tools/runner/java/vogar/EnvironmentHost.java
+++ b/libcore/tools/runner/java/vogar/EnvironmentHost.java
@@ -16,11 +16,10 @@
 
 package vogar;
 
+import java.io.File;
 import vogar.commands.Command;
 import vogar.commands.Mkdir;
 
-import java.io.File;
-
 class EnvironmentHost extends Environment {
 
     EnvironmentHost(boolean cleanBefore, boolean cleanAfter,
diff --git a/libcore/tools/runner/java/vogar/HostMonitor.java b/libcore/tools/runner/java/vogar/HostMonitor.java
index 6c30d8d..9732b66 100644
--- a/libcore/tools/runner/java/vogar/HostMonitor.java
+++ b/libcore/tools/runner/java/vogar/HostMonitor.java
@@ -16,23 +16,22 @@
 
 package vogar;
 
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.ConnectException;
+import java.net.Socket;
+import java.util.Collections;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
 import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
 
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.Socket;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
 /**
  * Connects to a target process to monitor its action.
  */
@@ -50,31 +49,37 @@
     public boolean monitor(int port, Handler handler) {
         Socket socket;
         InputStream in;
-        try {
-            int attempt = 0;
-            do {
+        int attempt = 0;
+        do {
+            try {
                 socket = new Socket("localhost", port);
                 in = new BufferedInputStream(socket.getInputStream());
                 if (checkStream(in)) {
-                    logger.fine("action monitor connected to " + socket.getRemoteSocketAddress());
                     break;
                 }
-
-                if (attempt++ == MAX_CONNECT_ATTEMPTS) {
-                    throw new IOException("Exceeded max connection attempts!");
-                }
-                logger.fine("connection " + attempt + " to localhost:" + port + " is dead; retrying...");
                 in.close();
                 socket.close();
-                try {
-                    Thread.sleep(CONNECTION_ATTEMPT_DELAY_MILLIS);
-                } catch (InterruptedException e) {
-                }
-            } while (true);
-        } catch (IOException e) {
-            logger.log(Level.WARNING, "Failed to connect to localhost:" + port, e);
-            return false;
-        }
+            } catch (ConnectException recoverable) {
+            } catch (IOException e) {
+                logger.log(Level.WARNING, "Failed to connect to localhost:" + port, e);
+                return false;
+            }
+
+            if (attempt++ == MAX_CONNECT_ATTEMPTS) {
+                logger.warning("Exceeded " + MAX_CONNECT_ATTEMPTS
+                        + " attempts to connect to localhost:" + port);
+                return false;
+            }
+
+            logger.fine("connection " + attempt + " to localhost:" + port
+                    + " failed; retrying in " + CONNECTION_ATTEMPT_DELAY_MILLIS + "ms");
+            try {
+                Thread.sleep(CONNECTION_ATTEMPT_DELAY_MILLIS);
+            } catch (InterruptedException e) {
+            }
+        } while (true);
+
+        logger.fine("action monitor connected to " + socket.getRemoteSocketAddress());
 
         try {
             SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
@@ -147,13 +152,13 @@
          * Our XML wire format looks like this:
          *
          * <?xml version='1.0' encoding='UTF-8' ?>
-         * <vogar>
+         * <vogar-monitor>
          *   <outcome name="java.util.FormatterTest" action="java.util.FormatterTest">
          *     test output
          *     more test output
          *     <result value="SUCCESS" />
          *   </outcome>
-         * </vogar>
+         * </vogar-monitor>
          */
 
         @Override public void startElement(String uri, String localName,
@@ -171,7 +176,7 @@
                 currentResult = Result.valueOf(attributes.getValue("value"));
                 return;
 
-            } else if (!qName.equals("vogar")) {
+            } else if (!qName.equals("vogar-monitor")) {
                 throw new IllegalArgumentException("Unrecognized: " + qName);
             }
         }
diff --git a/libcore/tools/runner/java/vogar/JUnitFinder.java b/libcore/tools/runner/java/vogar/JUnitFinder.java
index 4d98f86..0dcfbcd 100644
--- a/libcore/tools/runner/java/vogar/JUnitFinder.java
+++ b/libcore/tools/runner/java/vogar/JUnitFinder.java
@@ -16,11 +16,10 @@
 
 package vogar;
 
+import java.io.File;
 import vogar.target.JUnitRunner;
 import vogar.target.Runner;
 
-import java.io.File;
-
 /**
  * Create {@link Action}s for {@code .java} files with JUnit tests in them.
  */
diff --git a/libcore/tools/runner/java/vogar/Javac.java b/libcore/tools/runner/java/vogar/Javac.java
index c10a428..83ef8f0 100644
--- a/libcore/tools/runner/java/vogar/Javac.java
+++ b/libcore/tools/runner/java/vogar/Javac.java
@@ -16,12 +16,11 @@
 
 package vogar;
 
-import vogar.commands.Command;
-
 import java.io.File;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import vogar.commands.Command;
 
 /**
  * A javac command.
diff --git a/libcore/tools/runner/java/vogar/JtregFinder.java b/libcore/tools/runner/java/vogar/JtregFinder.java
index 7319b6b..b413166 100644
--- a/libcore/tools/runner/java/vogar/JtregFinder.java
+++ b/libcore/tools/runner/java/vogar/JtregFinder.java
@@ -22,16 +22,15 @@
 import com.sun.javatest.TestSuite;
 import com.sun.javatest.WorkDirectory;
 import com.sun.javatest.regtest.RegressionTestSuite;
-import vogar.commands.Mkdir;
-import vogar.target.JtregRunner;
-import vogar.target.Runner;
-
 import java.io.File;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.Set;
 import java.util.logging.Logger;
+import vogar.commands.Mkdir;
+import vogar.target.JtregRunner;
+import vogar.target.Runner;
 
 /**
  * Create {@link Action}s for {@code .java} files with jtreg tests in them.
diff --git a/libcore/tools/runner/java/vogar/MainFinder.java b/libcore/tools/runner/java/vogar/MainFinder.java
index e98098a..4c1f1db 100644
--- a/libcore/tools/runner/java/vogar/MainFinder.java
+++ b/libcore/tools/runner/java/vogar/MainFinder.java
@@ -16,11 +16,10 @@
 
 package vogar;
 
+import java.io.File;
 import vogar.target.MainRunner;
 import vogar.target.Runner;
 
-import java.io.File;
-
 /**
  * Create {@link Action}s for {@code .java} files with main methods in them.
  */
diff --git a/libcore/tools/runner/java/vogar/Md5Cache.java b/libcore/tools/runner/java/vogar/Md5Cache.java
index b1844b8..2855ae8 100644
--- a/libcore/tools/runner/java/vogar/Md5Cache.java
+++ b/libcore/tools/runner/java/vogar/Md5Cache.java
@@ -16,13 +16,12 @@
 
 package vogar;
 
-import vogar.commands.Command;
-import vogar.commands.Mkdir;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.security.MessageDigest;
 import java.util.logging.Logger;
+import vogar.commands.Command;
+import vogar.commands.Mkdir;
 
 /**
  * Caches content by MD5.
diff --git a/libcore/tools/runner/java/vogar/Mode.java b/libcore/tools/runner/java/vogar/Mode.java
index d9032a0..eaabb94 100644
--- a/libcore/tools/runner/java/vogar/Mode.java
+++ b/libcore/tools/runner/java/vogar/Mode.java
@@ -16,10 +16,6 @@
 
 package vogar;
 
-import vogar.commands.Command;
-import vogar.commands.CommandFailedException;
-import vogar.commands.Mkdir;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.FilenameFilter;
@@ -32,6 +28,9 @@
 import java.util.Set;
 import java.util.logging.Logger;
 import java.util.regex.Pattern;
+import vogar.commands.Command;
+import vogar.commands.CommandFailedException;
+import vogar.commands.Mkdir;
 
 /**
  * A Mode for running actions. Examples including running in a virtual machine
@@ -72,6 +71,7 @@
             // TODO: we should be able to work with a shipping SDK, not depend on out/...
             // dalvik/libcore/**/test/ for junit
             // TODO: jar up just the junit classes and drop the jar in our lib/ directory.
+            new File("out/host/common/obj/JAVA_LIBRARIES/kxml2-2.3.0_intermediates/javalib.jar").getAbsoluteFile(),
             new File("out/target/common/obj/JAVA_LIBRARIES/core-tests-luni_intermediates/classes.jar").getAbsoluteFile());
 
     Mode(Environment environment, File sdkJar, List<String> javacArgs, int monitorPort) {
diff --git a/libcore/tools/runner/java/vogar/Vm.java b/libcore/tools/runner/java/vogar/Vm.java
index b035266..c69d7a2 100644
--- a/libcore/tools/runner/java/vogar/Vm.java
+++ b/libcore/tools/runner/java/vogar/Vm.java
@@ -16,9 +16,6 @@
 
 package vogar;
 
-import vogar.commands.Command;
-import vogar.target.TestRunner;
-
 import java.io.File;
 import java.io.PrintStream;
 import java.util.ArrayList;
@@ -26,6 +23,8 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import vogar.commands.Command;
+import vogar.target.TestRunner;
 
 /**
  * A Java-like virtual machine for compiling and running tests.
diff --git a/libcore/tools/runner/java/vogar/Vogar.java b/libcore/tools/runner/java/vogar/Vogar.java
index c12c2d5..bca0a3d 100644
--- a/libcore/tools/runner/java/vogar/Vogar.java
+++ b/libcore/tools/runner/java/vogar/Vogar.java
@@ -22,7 +22,6 @@
 import java.util.Arrays;
 import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.Random;
 import java.util.Set;
 import java.util.UUID;
 
@@ -274,9 +273,10 @@
         Console console = new Console(options.stream, options.indent, options.color);
         console.configureJavaLogging(options.verbose);
 
-        int monitorPort = 8787;
+        int monitorPort;
         Mode mode;
         if (options.mode.equals(Options.MODE_DEVICE)) {
+            monitorPort = 8787;
             mode = new DeviceDalvikVm(
                     options.debugPort,
                     options.sdkJar,
@@ -288,6 +288,7 @@
                     options.cleanAfter,
                     options.deviceRunnerDir);
         } else if (options.mode.equals(Options.MODE_HOST)) {
+            monitorPort = 8788;
             mode = new JavaVm(
                     options.debugPort,
                     options.sdkJar,
@@ -300,6 +301,7 @@
                     options.cleanAfter
             );
         } else if (options.mode.equals(Options.MODE_ACTIVITY)) {
+            monitorPort = 8787;
             mode = new ActivityMode(
                     options.debugPort,
                     options.sdkJar,
diff --git a/libcore/tools/runner/java/vogar/XmlReportPrinter.java b/libcore/tools/runner/java/vogar/XmlReportPrinter.java
index 2cd8c66..f8c25fb 100644
--- a/libcore/tools/runner/java/vogar/XmlReportPrinter.java
+++ b/libcore/tools/runner/java/vogar/XmlReportPrinter.java
@@ -16,8 +16,6 @@
 
 package vogar;
 
-import org.kxml2.io.KXmlSerializer;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -29,6 +27,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.TimeZone;
+import org.kxml2.io.KXmlSerializer;
 
 
 /**
diff --git a/libcore/tools/runner/java/vogar/commands/Command.java b/libcore/tools/runner/java/vogar/commands/Command.java
index 8a014b5..b861503 100644
--- a/libcore/tools/runner/java/vogar/commands/Command.java
+++ b/libcore/tools/runner/java/vogar/commands/Command.java
@@ -16,9 +16,6 @@
 
 package vogar.commands;
 
-import vogar.Strings;
-import vogar.Threads;
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
@@ -37,6 +34,8 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.logging.Logger;
+import vogar.Strings;
+import vogar.Threads;
 
 /**
  * An out of process executable.
diff --git a/libcore/tools/runner/java/vogar/commands/Dx.java b/libcore/tools/runner/java/vogar/commands/Dx.java
index 678a294..0fcf280 100644
--- a/libcore/tools/runner/java/vogar/commands/Dx.java
+++ b/libcore/tools/runner/java/vogar/commands/Dx.java
@@ -16,13 +16,12 @@
 
 package vogar.commands;
 
+import java.io.File;
+import java.util.logging.Logger;
 import vogar.Classpath;
 import vogar.Md5Cache;
 import vogar.Strings;
 
-import java.io.File;
-import java.util.logging.Logger;
-
 /**
  * A dx command.
  */
diff --git a/libcore/tools/runner/java/vogar/target/JUnitRunner.java b/libcore/tools/runner/java/vogar/target/JUnitRunner.java
index 767d80d..00c61f8 100644
--- a/libcore/tools/runner/java/vogar/target/JUnitRunner.java
+++ b/libcore/tools/runner/java/vogar/target/JUnitRunner.java
@@ -16,6 +16,8 @@
 
 package vogar.target;
 
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import junit.framework.AssertionFailedError;
 import junit.framework.Test;
 import junit.framework.TestResult;
@@ -24,9 +26,6 @@
 import junit.textui.ResultPrinter;
 import vogar.Result;
 
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
 /**
  * Adapts a JUnit test for use by vogar.
  */
diff --git a/libcore/tools/runner/java/vogar/target/JtregRunner.java b/libcore/tools/runner/java/vogar/target/JtregRunner.java
index a6c7f4f..6deeef9 100644
--- a/libcore/tools/runner/java/vogar/target/JtregRunner.java
+++ b/libcore/tools/runner/java/vogar/target/JtregRunner.java
@@ -16,9 +16,8 @@
 
 package vogar.target;
 
-import vogar.Result;
-
 import java.lang.reflect.Method;
+import vogar.Result;
 
 /**
  * Runs a jtreg test.
diff --git a/libcore/tools/runner/java/vogar/target/MainRunner.java b/libcore/tools/runner/java/vogar/target/MainRunner.java
index c091795..cc7dccd 100644
--- a/libcore/tools/runner/java/vogar/target/MainRunner.java
+++ b/libcore/tools/runner/java/vogar/target/MainRunner.java
@@ -16,9 +16,8 @@
 
 package vogar.target;
 
-import vogar.Result;
-
 import java.lang.reflect.Method;
+import vogar.Result;
 
 /**
  * Runs a Java class with a main method.
diff --git a/libcore/tools/runner/java/vogar/target/TargetMonitor.java b/libcore/tools/runner/java/vogar/target/TargetMonitor.java
index c14c09f..1122caf 100644
--- a/libcore/tools/runner/java/vogar/target/TargetMonitor.java
+++ b/libcore/tools/runner/java/vogar/target/TargetMonitor.java
@@ -16,15 +16,14 @@
 
 package vogar.target;
 
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
 import org.xmlpull.v1.XmlPullParserException;
 import org.xmlpull.v1.XmlPullParserFactory;
 import org.xmlpull.v1.XmlSerializer;
 import vogar.Result;
 
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.net.Socket;
-
 /**
  * Accepts a connection for a host process to monitor this action.
  */
@@ -51,7 +50,7 @@
             serializer = XmlPullParserFactory.newInstance().newSerializer();
             serializer.setOutput(socket.getOutputStream(), "UTF-8");
             serializer.startDocument("UTF-8", null);
-            serializer.startTag(ns, "vogar");
+            serializer.startTag(ns, "vogar-monitor");
         } catch (IOException e) {
             throw new RuntimeException("Failed to accept a monitor on localhost:" + port, e);
         } catch (XmlPullParserException e) {
@@ -93,7 +92,7 @@
 
     public void close() {
         try {
-            serializer.endTag(ns, "vogar");
+            serializer.endTag(ns, "vogar-monitor");
             serializer.endDocument();
             socket.close();
             serverSocket.close();
diff --git a/libcore/tools/runner/java/vogar/target/TestRunner.java b/libcore/tools/runner/java/vogar/target/TestRunner.java
index 0eb082c..1e1f479 100644
--- a/libcore/tools/runner/java/vogar/target/TestRunner.java
+++ b/libcore/tools/runner/java/vogar/target/TestRunner.java
@@ -16,12 +16,11 @@
 
 package vogar.target;
 
-import vogar.TestProperties;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintStream;
 import java.util.Properties;
+import vogar.TestProperties;
 
 /**
  * Runs an action, in process on the target.