Package net.bytebuddy.build
Interface Plugin
-
- All Superinterfaces:
java.lang.AutoCloseable,java.io.Closeable,ElementMatcher<TypeDescription>
- All Known Subinterfaces:
Plugin.WithInitialization,Plugin.WithPreprocessor
- All Known Implementing Classes:
AccessControllerPlugin,CachedReturnPlugin,DispatcherAnnotationPlugin,HashCodeAndEqualsPlugin,HashCodeAndEqualsPlugin.WithNonNullableFields,ModuleVersionPlugin,Plugin.ForElementMatcher,Plugin.NoOp,RenamingPlugin,RepeatedAnnotationPlugin,SafeVarargsPlugin,ToStringPlugin
public interface Plugin extends ElementMatcher<TypeDescription>, java.io.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.Engineor when using a parallelPlugin.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfacePlugin.EngineA plugin engine allows the application of one or more plugins on class files found at aPlugin.Engine.Sourcewhich are then transferred and consumed by aPlugin.Engine.Target.static interfacePlugin.FactoryA factory for providing a build plugin.static classPlugin.ForElementMatcherAn abstract base for aPluginthat matches types by a givenElementMatcher.static classPlugin.NoOpA non-operational plugin that does not instrument any type.static interfacePlugin.WithInitializationAllows for the generation of types before a plugin is applied.static interfacePlugin.WithPreprocessorA plugin that applies a preprocessor, i.e.-
Nested classes/interfaces inherited from interface net.bytebuddy.matcher.ElementMatcher
ElementMatcher.Junction<S>
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description DynamicType.Builder<?>apply(DynamicType.Builder<?> builder, TypeDescription typeDescription, ClassFileLocator classFileLocator)Applies this plugin.-
Methods inherited from interface net.bytebuddy.matcher.ElementMatcher
matches
-
-
-
-
Method Detail
-
apply
DynamicType.Builder<?> apply(DynamicType.Builder<?> builder, TypeDescription typeDescription, ClassFileLocator classFileLocator)
Applies this plugin.- Parameters:
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.- Returns:
- The supplied builder with additional transformations registered.
-
-