Sync with internal changes.

Change-Id: I4db1e38597dcd76acefe89e2eb28cc5bae16178e
diff --git a/dev/BUILD b/dev/BUILD
index 0ca17f3..4df9de8 100644
--- a/dev/BUILD
+++ b/dev/BUILD
@@ -137,6 +137,11 @@
         ["core/src/**/*.java"],
         exclude = ["**/package-info.java"],
     ),
+    # Temporary workaround to ensure Java 6 compatible class files after Java
+    # 7 upgrade.
+    # TODO: only the requestfactory client should be required to be Android
+    # compatible.
+    constraints = ["android"],
     deps = [
         ":compiler.standalone.super",
         "//third_party/java_src/gwt/svn/tools:dev_deps",
@@ -215,6 +220,7 @@
             "**/package-info.java",
         ],
     ),
+    constraints = ["android"],
     javacopts = [
         "-encoding utf8",
         "-source 5",
diff --git a/dev/codeserver/BUILD b/dev/codeserver/BUILD
index 4bd0713..57654d0 100644
--- a/dev/codeserver/BUILD
+++ b/dev/codeserver/BUILD
@@ -45,6 +45,7 @@
         # approved dependencies (for open source code)
         "//third_party/java_src/gwt:gwt-dev",
         # no other dependencies allowed
+        "//third_party/java/json",  # undeclared dependency of SourceMapConsumer. TODO: fix
     ],
 )
 
diff --git a/user/src/com/google/web/bindery/requestfactory/apt/ValidationTool.java b/user/src/com/google/web/bindery/requestfactory/apt/ValidationTool.java
index 5f54312..459e7d5 100644
--- a/user/src/com/google/web/bindery/requestfactory/apt/ValidationTool.java
+++ b/user/src/com/google/web/bindery/requestfactory/apt/ValidationTool.java
@@ -217,6 +217,11 @@
   }
 
   public static boolean exec(String[] args, JavaCompiler compiler) throws IOException {
+    return exec(args, compiler, null);
+  }
+
+  public static boolean exec(String[] args, JavaCompiler compiler, Iterable<String> javacOpts)
+      throws IOException {
     if (args.length < 2) {
       System.err.println("java -cp requestfactory-client.jar:your_server-code.jar "
           + ValidationTool.class.getCanonicalName()
@@ -258,7 +263,7 @@
 
     // Create the compilation task
     CompilationTask task =
-        compiler.getTask(null, fileManager, null, null, null, Arrays
+        compiler.getTask(null, fileManager, null, javacOpts, null, Arrays
             .asList(new FakeJavaFileObject()));
     task.setProcessors(Arrays.asList(processor));
     if (!task.call()) {