Fix handling of repackaged transitive classes in jdeps

Turbine supports running with only direct dependencies on the classpath (see
https://github.com/google/turbine/commit/d1509927c68b994ecb9eb95a8ae8478da9f04ed4).
In this mode it repackages transitive supertypes of classes referenced in the
compilation, and saves them in the output jar under `META-INF/TRANSITIVE`.

When turbine records classes that were used in the compilation for `jdeps`
output, it was reporting the jar that it loaded a repackaged transitive class
from, instead of the jar where that repackaged transitive class was originally
found.

This change adds a `TurbineTransitiveJar` class file attribute to the
repackaged classes that records the path of the jar file they were originally
seen in, and updates the `jdeps` logic to report that original path instead of
the jar where the repackaged class was observed.

PiperOrigin-RevId: 380075237
10 files changed
tree: 3a56aa3ae10a44c595493664f090c05198121c85
  1. .github/
  2. java/
  3. javatests/
  4. proto/
  5. .gitattributes
  6. .gitignore
  7. LICENSE
  8. pom.xml
  9. README.md
README.md

Turbine

Turbine is a header compiler for Java.