public interface Plugin extends ElementMatcher<TypeDescription>, Closeable
A plugin that allows for the application of Byte Buddy transformations during a build process. This plugin's transformation is applied to any type matching this plugin's type matcher. Plugin types must be public, non-abstract and must declare a public default constructor to work.
A plugin is always used within the scope of a single plugin engine application and is disposed after closing. It might be used
concurrently and must assure its own thread-safety if run outside of a Plugin.Engine
or when using a parallel
Plugin.Engine.Dispatcher
.
For discoverability, plugin class names can be stored in a file named META-INF/net.bytebuddy/build.plugins with the fully qualified class name of the plugin per line.
Modifier and Type | Interface and Description |
---|---|
static interface |
Plugin.Engine
A plugin engine allows the application of one or more plugins on class files found at a
Plugin.Engine.Source which are
then transferred and consumed by a Target . |
static interface |
Plugin.Factory
A factory for providing a build plugin.
|
static class |
Plugin.ForElementMatcher
An abstract base for a
Plugin that matches types by a given ElementMatcher . |
static class |
Plugin.NoOp
A non-operational plugin that does not instrument any type.
|
static interface |
Plugin.WithInitialization
Allows for the generation of types before a plugin is applied.
|
static interface |
Plugin.WithPreprocessor
A plugin that applies a preprocessor, i.e.
|
ElementMatcher.Junction<S>
Modifier and Type | Method and Description |
---|---|
DynamicType.Builder<?> |
apply(DynamicType.Builder<?> builder,
TypeDescription typeDescription,
ClassFileLocator classFileLocator)
Applies this plugin.
|
matches
DynamicType.Builder<?> apply(DynamicType.Builder<?> builder, TypeDescription typeDescription, ClassFileLocator classFileLocator)
builder
- The builder to use as a basis for the applied transformation.typeDescription
- The type being transformed.classFileLocator
- A class file locator that can locate other types in the scope of the project.Copyright © 2014–2025. All rights reserved.