ASwB aspect: parse java packages during execution

--
MOS_MIGRATED_REVID=109305952
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
index 4857c21..bdf4639 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
@@ -486,6 +486,14 @@
         }
       };
 
+  public static final Function<Artifact, String> ABSOLUTE_PATH_STRING =
+      new Function<Artifact, String>() {
+        @Override
+        public String apply(Artifact artifact) {
+          return artifact.getPath().getPathString();
+        }
+      };
+
   /**
    * Converts a collection of artifacts into execution-time path strings, and
    * adds those to a given collection. Middleman artifacts are ignored by this
@@ -510,6 +518,16 @@
   }
 
   /**
+   * Lazily converts artifacts into absolute path strings. Middleman artifacts are ignored by
+   * this method.
+   */
+  public static Iterable<String> toAbsolutePaths(Iterable<Artifact> artifacts) {
+    return Iterables.transform(
+        Iterables.filter(artifacts, MIDDLEMAN_FILTER),
+        ABSOLUTE_PATH_STRING);
+  }
+
+  /**
    * Lazily converts artifacts into root-relative path strings. Middleman artifacts are ignored by
    * this method.
    */