Instrument abstract classes
I'm hoping to instrument an implementation of the Hadoop FileSystem abstract class, but the current version of Tritium only supports instrumenting interfaces (older versions briefly supports abstract class instrumentation).
Please bring back abstract class instrumentation so I can better understand calls to my FileSystem object.
Agreed, I'd like to re-add support for instrumenting abstract & non-final concrete types.
Originally added this in https://github.com/palantir/tritium/commit/f2a87d63095d157e9781be90ac19c0d25f60401e for 0.4.2, but there was some weirdness with the shadowed cglib & objenesis dependencies where they were still being included in published POM, causing problems with tritium consumers. Happy to accept PR with fixes for shadowing & publishing.
Should also mention that the gradle shadow plugin conflicted with the JMH generation, so we'll need to make sure those are still working.
WIP on https://github.com/palantir/tritium/tree/ds/instrument-concrete branch, just needs some shading & gradle love to make sure that the published libs don't include cglib and objenesis in pom.xml.
@carterkozak has a WIP https://github.com/palantir/tritium/commit/27d287f44f47abe1861e4f9a48bdbde69ced26a5 using ByteBuddy that would likely make this feasible.