Bombe 0.3.0
Bombe 0.3.0 continues the Bombe mission, further working towards making a cleaner codebase that can be used further afield than Lorenz or Survey.
Changes
- The
bombe-coremodule has been renamed to simplybombe, becoming more inline with the Lorenz modules. Type#isInstanceofhas been renamed toType#isAssignableFrom.
Inheritance providers
InheritanceProvider has been reworked to expose inheritance access levels (represented
by InheritanceType) and to improve performance.
InheritanceProvider.ClassInfo#getFieldsandgetMethodsnow return aMap<*Signature, InheritanceType>that allows checking if a child class actually inherits a member from its parent class based on its access level.InheritanceProvider.ClassInfo#provideParentsis a shortcut to provideClassInfos for all parent classes/interfaces for a class, recursively. (Replaces thegetParentsOfmethod)- There is a new
CachingInheritanceProviderthat wraps an existingInheritanceProviderand caches the request. This replaces the duplicated functionality in all otherInheritanceProviderimplementations. ReflectionInheritanceProviderwas added as a reference implementation based on Java’s reflection API.
Jar Transformation Framework
Bombe now contains a so-called ‘jar-file transformation framework’, that facilitates the reading and manipulating of Jar files. The javadocs will be the best reference for it :)
Going forward, this may be moved into a separate library.