Releases: raphw/byte-buddy
Releases · raphw/byte-buddy
Byte Buddy 0.7
- Refactored injection strategy to always inject and load the instrumented type first to avoid premature loading by reference from auxiliary types.
- Refactored
AgentBuilder.Default
to delay auxiliary type injection until load time to avoid premature loading by reference from auxiliary types. - Added API to add additional code to type initializers while building a type.
- Refactored agent
Nexus
to allow for multiple registrations of self initializers if multiple agents are registered via Byte Buddy. - Fixed resolution of interface methods that were represented in the type hierarchy multiple times.
- Implemented custom ASM class writer to allow for frame computation via Byte Buddy's type pool when this is required by a user.
- Fallback to no allowing for instrumenting type initializers for rebased or redefined interfaces before Java 8.
Byte Buddy 0.7-rc6
- Refactored
AgentBuilder.Default
to delegate exceptions during redefinitions to listener instead of throwing them. - Fixed bug where instrumented type would count to auxiliary types and trigger injection strategy.
- Fixed bug where interface types would resolve to a non-generic type signature.
- Added strategy to use redefinition or retransformation of the
Instrumentation
API when building agents. - Added lazy facade to be used by agent builder to improve performance for name-based matchers.
Byte Buddy 0.7-rc5
- Fixed parser to supress exceptions from generic signatures which are not supposed to be included in the class file if no array type is generic.
- Fixed class validator which did not allow
<clinit>
blocks in interface types. - Added restriction to retransformation to not attempt a retransformation at all if no class should be retransformed.
- Added a factory for creating an
Implementation.Context
that is configurable. This way, it is possible to avoid a rebase of a type initializer which is not always possible. - Added a possibility to specify for an
AgentBuilder
how it should redefine or rebase a class that is intercepted.
Byte Buddy 0.7-rc4
- Fixed naming strategy for fields that cache values which chose duplicate names.
- Fixed resolution of raw types within the type hierarchy which were represented as non-generic
TypeDescription
instances where type variables of members were not resolved. - Added possibility to specify hints for
ClassReader
andClassWriter
instances. - Fixed resolution for modifiers of members that are defined by Byte Buddy. Previsouly, Byte Buddy would sometimes attempt to define private syntehtic methods on generated interfaces.
- Fixed assignability resolution for arrays.
- Fixed class file parser which would not recognize outer classes for version 1.3 byte code.
Byte Buddy 0.7-rc3
- Read
Nexus
instances of the Byte Buddy agents from the enclosing class loader rather than from the system class loader. This allows for their usage from OSGi environments and for user with other custom class loaders. - Changed modifiers for accessor methods and rebased methods to be public when rebasing or accessing methods of a Java 8 interface. For interfaces, all modifiers must be public, even for such synthetic members.
- Support absolute path names for accessing class file ressources of the
ByteArrayClassLoader
. - Added random suffix to the names of rebased methods to avoid naming conflicts.
Byte Buddy 0.7-rc2
- Refactored runtime attachment of Java agents to support Java 9 and additional legacy VM (version 8-).
- Refactored
MethodGraph
to only represent virtual methods. - Changed notion of visibility to not longer consider the declaring type as part of the visibility.
- Increased flexibility of defining proxy types for
@Super
and@Default
annotations. - Added directional
AmbigouityResolver
. - Fixed detection of methods that can be rebased to not include methods that did not previously exist.
Byte Buddy 0.6.15
- Added support for discovery and handling of Java 9 VMs.
- Fixed class loading for Android 5 (Lollipop) API.
Byte Buddy 0.7-rc1
- Added support for generic types.
- Replaced
MethodLookupEngine
withMethodGraph.Compiler
to provide a richer data structure. - Added support for bridge methods (type and visibility bridges).
- Refactored the predefined
ElementMatcher
s to allow for matching generic types. - Replaced the
ModifierResolver
with a more generalMethodTransformer
.
Byte Buddy 0.6.14
- Fixed resolution of ignored methods. Previously, additional ignored methods were not appended but added as an additional criteria for ignoring a method.
Byte Buddy 0.6.13
- Fixed resolution of field accessors to not attempt reading of non-static fields from static
- Fixed renaming strategy for type redefinitions to work arround a constraint of ASM where stack map frames required to be expanded even though this was not strictly necessary.