Uses of Package
net.bytebuddy.agent.builder
Packages that use net.bytebuddy.agent.builder
Package
Description
An agent builder is used to easily implement load-time class-transformations using a Java agent.
-
Classes in net.bytebuddy.agent.builder used by net.bytebuddy.agent.builderClassDescriptionAn agent builder provides a convenience API for defining a Java agent.A circularity lock is responsible for preventing that a
ClassFileLocator
is used recursively.An inactive circularity lock which is always acquirable.This strategy determines how the provided class file buffer is used.An implementation of default class file buffer strategy.The default implementation of anAgentBuilder
.An abstract implementation of an agent builder that delegates all invocation to another instance.An abstract base implementation of a matchable.A dispatcher for interacting with the instrumentation API.A factory for creating aClassFileTransformer
for the current VM.An action to create an implementation ofAgentBuilder.Default.ExecutingTransformer
that support Java 9 modules.A factory for aClassFileTransformer
on a VM that does not support thejava.lang.Module
API.A strategy for determining if a native method name prefix should be used when rebasing methods.A native method strategy that suffixes method names with a random suffix and disables native method rebasement.A transformation to apply.A strategy to warm up aClassFileTransformer
before using it to eagerly load classes and to avoid circularity errors when classes are loaded during actual transformation for the first time.A dispatcher to interact with aClassFileTransformer
when the module system is active.A non-operational warmup strategy.A description strategy is responsible for resolving aTypeDescription
when transforming or retransforming/-defining a type.Default implementations of aAgentBuilder.DescriptionStrategy
.A fallback strategy allows to reattempt a transformation or a consideration for redefinition/retransformation in case an exception occurs.A simple fallback strategy that either always reattempts a transformation or never does so.Describes anAgentBuilder
which was handed a matcher for identifying types to instrumented in order to supply one or severalAgentBuilder.Transformer
s.This interface is used to allow for optionally providing severalAgentBuilder.Transformer
to applied when a matcher identifies a type to be instrumented.Allows to specify a type matcher for a type to instrument.Allows to further specify ignored types.An initialization strategy which determines the handling ofLoadedTypeInitializer
s and the loading of auxiliary types.A dispatcher for changing a class file to adapt a self-initialization strategy.An initialization strategy that loads auxiliary types before loading the instrumented type.A non-initializing initialization strategy.An initialization strategy that adds a code block to an instrumented type's type initializer which then calls a specific class that is responsible for the explicit initialization.A dispatcher for a self-initialization strategy.A strategy for injecting auxiliary types into a class loader.An injection strategy that does not permit class injection.An injection strategy that uses JNA to inject classes.An injection strategy that uses Java reflection.An injection strategy that usessun.misc.Unsafe
orjdk.internal.misc.Unsafe
to inject classes.A listener that is notified during the installation and the resetting of a class file transformer.An adapter implementation for an installation listener that serves as a convenience.A listener that suppresses any installation error.A non-operational listener that does not do anything.Implements the instrumentation of theLambdaMetafactory
if this feature is enabled.Implements a lambda class's executing transformer.An implementation of a instance factory for a lambda expression's class.A dispatcher for a lambda expression's implementation.An invocation that is using a direct call to the target method.A factory for rewriting the JDK'sjava.lang.invoke.LambdaMetafactory
methods for use with Byte Buddy.A loader is responsible for loading a generated class file in the current VM.An implementation that indicates that no loader is available.A loader that uses a method handle lookup object to load a class.A loader that is using unsafe API to load a lambda implementation.A listener that is informed about events that occur during an instrumentation process.An adapter for a listener where all methods are implemented as non-operational.A no-op implementation of aAgentBuilder.Listener
.A listener that writes events to aPrintStream
.A strategy for creating aClassFileLocator
when instrumenting a type.A location strategy that locates class files by querying an instrumented type'sClassLoader
.A location strategy that never locates any byte code.An abstraction for extending a matcher.Determines how patching aResettableClassFileTransformer
resolves the transformer exchange.A handler to allow for callbacks prior and after registering aClassFileTransformer
.A non-operational handler.A type locator allows to specify howTypeDescription
s are resolved by anAgentBuilder
.A type locator that attempts loading a type if it cannot be located by the underlying lazy type pool.A default type locator that resolves types only if any property that is not the type's name is requested.A type locator that resolves all type descriptions eagerly.A type locator that uses type pools but allows for the configuration of a custom cache provider by class loader.A matcher that allows to determine if aAgentBuilder.Transformer
should be applied during the execution of aClassFileTransformer
that was generated by anAgentBuilder
.A raw matcher indicating the state of a type's class loading.Only matches loaded types that can be fully resolved.A matcher that always or never matches a type.An agent builder configuration that allows the registration of listeners to the redefinition process.A matcher that determines if types should be resubmitted if it is not yet loaded.A trivial matcher for immediate resubmission.A matcher that determines if types should be resubmitted if it is not yet loaded and if an exception is raised.A trivial matcher for resubmission upon an exception.An agent builder configuration strategy that allows the definition of a discovery strategy.An agent builder configuration that allows the configuration of a batching strategy.AnAgentBuilder
specification that requires a resubmission specification.A complete but extendable resubmission specification.A redefinition strategy regulates how already loaded classes are modified by a built agent.A batch allocator which is responsible for applying a redefinition in a batches.A batch allocator that includes all types in a single batch.A collector is responsible for collecting classes that are to be considered for modification.A strategy for discovering types to redefine.A discovery strategy that considers all loaded types supplied byInstrumentation.getAllLoadedClasses()
.A discovery strategy that simplifies the application ofAgentBuilder.RedefinitionStrategy.DiscoveryStrategy.Reiterating
by assuming that the loaded classes that are returned byInstrumentation.getAllLoadedClasses()
are always returned in the same order.A discovery strategy that considers all loaded types supplied byInstrumentation.getAllLoadedClasses()
.A dispatcher for interacting with the instrumentation API.A listener to be applied during a redefinition.A listener adapter that offers non-operational implementations of all listener methods.A listener that halts a retransformation process upon an exception.A non-operational listener.A listener that invokesThread.yield()
prior to every batch but the first batch.A resubmission enforcer determines if a non-loaded class should be scheduled for resubmission or be treated upon first load.A resubmission enforcer that does not consider non-loaded classes.A resubmission scheduler is responsible for scheduling a job that is resubmitting unloaded types that failed during retransformation.A cancelable allows to discontinue a resubmission job.A non-operational cancelable.A resubmission scheduler that does not apply any scheduling.A resubmission strategy is responsible for enabling resubmission of types that failed to resubmit.A disabled resubmission strategy.A key for a class loader that only weakly references the class loader.Represents an installation of a resubmission strategy.A transformer allows to apply modifications to aDynamicType
.A transformer for applying anAdvice
where this advice class might reference types of both the agent's and the user's class loader.An entry for an advice to apply.A decorator that allows to change the class file transformer that is registered.A transformer decorator that retains the original transformer.A type strategy is responsible for creating a type builder for a type that is being instrumented.Default implementations of type strategies.This class serves as a dispatcher for creating lambda expression objects when Byte Buddy is configured to instrument thejava.lang.invoke.LambdaMetafactory
.A class file transformer that can reset its transformation.An abstract base implementation of aResettableClassFileTransformer
.