Add support for source jars to `OverlayCompiler`.

This also implies adding that support to `TurbineTool`.

PiperOrigin-RevId: 532899495
diff --git a/java/com/google/turbine/main/Main.java b/java/com/google/turbine/main/Main.java
index 45b0538..9db97f4 100644
--- a/java/com/google/turbine/main/Main.java
+++ b/java/com/google/turbine/main/Main.java
@@ -267,7 +267,7 @@
                 /* processorPath= */ options.processorPath(),
                 /* builtinProcessors= */ options.builtinProcessors())),
         bootclasspath,
-        /* moduleVersion=*/ Optional.empty());
+        /* moduleVersion= */ Optional.empty());
   }
 
   private static void usage(TurbineOptions options) {
@@ -314,12 +314,17 @@
   /** Parse all source files and source jars. */
   // TODO(cushon): parallelize
   private static ImmutableList<CompUnit> parseAll(TurbineOptions options) throws IOException {
+    return parseAll(options.sources(), options.sourceJars());
+  }
+
+  static ImmutableList<CompUnit> parseAll(Iterable<String> sources, Iterable<String> sourceJars)
+      throws IOException {
     ImmutableList.Builder<CompUnit> units = ImmutableList.builder();
-    for (String source : options.sources()) {
+    for (String source : sources) {
       Path path = Paths.get(source);
       units.add(Parser.parse(new SourceFile(source, MoreFiles.asCharSource(path, UTF_8).read())));
     }
-    for (String sourceJar : options.sourceJars()) {
+    for (String sourceJar : sourceJars) {
       try (Zip.ZipIterable iterable = new Zip.ZipIterable(Paths.get(sourceJar))) {
         for (Zip.Entry ze : iterable) {
           if (ze.name().endsWith(".java")) {