Pick up classpath based on target id; Set up infrastructure to pass down full targets' info to external builder
Review Request #3300 — Created Jan. 5, 2016 and submitted — Latest diff uploaded
|patricklaw, stuhood, tejal, zundel|
Earlier https://rbcommons.com/s/twitter/r/3211/ was merged to safely output classpath with target id.
So this change:
1. Allows the plugin to pick up classpath given the exported target id (depending on https://rbcommons.com/s/twitter/r/3291/).
2. Setup the infratrusture to pass Set<TargetAddressInfo> down to the external builder via gson serialization, so further external builder logic correction can be done. For example, to unblock the temp fix (https://rbcommons.com/s/twitter/r/3237/) by telling whether to compile a target by its property is_synthetic in TargetAddressInfo rather than its name.
In order to reassemble Set<TargetAddressInfo> in the external builder, the following two files are currently 'duplcated' via symblinks, but ideally we want to isolate them as a separate target and have others depends on it, but the plugin BUILD relations is a bit of tricky(full of python code), so we might have to come back to this.jps-plugin/com/twitter/intellij/pants/jps/incremental/serialization/Globs.java jps-plugin/com/twitter/intellij/pants/jps/incremental/serialization/TargetAddressInfo.java