Releases: raphw/byte-buddy
Releases · raphw/byte-buddy
Byte Buddy 0.7.7
- Fixed type resolution for anoymously loaded classes by the
ClassReloadingStrategy
. - Added additional
InitiailizationStrategy
s for self-injection where the new default strategy loads types that are independent of the instrumented type before completing the instrumentation. This way, the resolution does not fail for types that are accessed via reflection before initializing the types if a constructor is rebased.
Byte Buddy 0.7.6
- Fixed resolution of
@Origin
for constructors and added possibility to use theExecutable
type. - Fixed name resolution of types loaded by anonymous class loading.
- Allowed alternative lookup for redefinitions to support types loaded by anonymous class loading.
Byte Buddy 0.7.5
- Fixed generic type resolution optimization for proxies for
@Super
.
Byte Buddy 0.7.4
- Added
TypePool
that returns precomputedTypeDescription
s for given types. - Fixed agent and nexus attachment and the corresponding value access.
Byte Buddy 0.7.3
- Added visibility substitution for
@Super
when the instrumented type is instrumented to see changed state on a redefinition. - Added patch for modifier information of inner classes on a redefinition.
- Added fallback for
Nexus
injection to attempt lookup of already loaded class if ressource cannot be located.
Byte Buddy 0.7.2
- Added
TypePool
that falls back to class loading if a class cannot be located. - Added binary locator for agent builder that uses the above class pool and only parses the class file of the instrumented type.
- Added methods for reading inner classes of a
TypeDescription
. - Fixed random naming based on random numbers to avoid signed numbers.
- Moved
Nexus
andInstaller
types to a package-level to avoid illegal outer and inner class references which could be resolved eagerly. - Added validation for illegal constant pool entries.
- Added a
Premature
initialization strategy for optimistically loading auxiliary types. - Added a
ClassVisitorWrapper
for translating Java class files prior to Java 5 to use explicit class loading rather than class pool constants.
Byte Buddy 0.7.1
- Fixed injection order for types to avoid premature loading by dependant auxiliary types.
- Added additional
ClassFileLocator
s and refactored class file lookup to always use these locators.
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.