Add change logging to allow verification of transformation
Currently, RepackagingTransform does not verify that every single
transformation (inserting default constructor or adding annotation) is
applied correctly. If a declaration locator in any of the files that
specify transformations to apply does not match then the locator is
silently ignored.
In some cases, e.g. adding CorePlatformApi annotations, an ignored
locator will be detected later during the build process when it causes
a change in the core plaform api specification file.
However, in other cases, e.g. UnsupportedAppUsage, an ignored locator
will only be detected when an application tries to use the API that is
now blacklisted.
The review process should pick up when an annotation is removed but it
is possible, especially when making a lot of changes such as during an
upgrade, that some will be missed.
The RepackagingTransform cannot check that all the locators it is given
are used as it only processes one source tree at a time but the
locators often apply to classes in multiple different source trees.
This adds the capability for the repackaging scripts to collate the
locators used across multiple source trees and then verify that all the
collators supplied in each file are used.
Tested by running scripts in all the projects that use this and
verifying that the generated files did not change. It reported that
some locators were unused in external/conscrypt which lead to
bug 119859108 being found.
Bug: 117818301
Test: see above
Change-Id: I092da1c4585bfb926d72f861c7a62345f949ddb2
8 files changed