Class Plugin.Engine.Default

java.lang.Object
net.bytebuddy.build.Plugin.Engine.AbstractBase
net.bytebuddy.build.Plugin.Engine.Default
All Implemented Interfaces:
Plugin.Engine
Enclosing interface:
Plugin.Engine

@Enhance public static class Plugin.Engine.Default extends Plugin.Engine.AbstractBase
A default implementation of a plugin engine.
  • Field Details

  • Constructor Details

    • Default

      public Default()
      Creates a new default plugin engine that rebases types and fails fast and on unresolved types and on live initializers.
    • Default

      public Default(ByteBuddy byteBuddy)
      Creates a new default plugin engine that rebases types and fails fast and on unresolved types and on live initializers.
      Parameters:
      byteBuddy - The Byte Buddy instance to use.
    • Default

      protected Default(ByteBuddy byteBuddy, Plugin.Engine.TypeStrategy typeStrategy)
      Creates a new default plugin engine.
      Parameters:
      byteBuddy - The Byte Buddy instance to use.
      typeStrategy - The type strategy to use.
    • Default

      protected Default(ByteBuddy byteBuddy, Plugin.Engine.TypeStrategy typeStrategy, Plugin.Engine.PoolStrategy poolStrategy, ClassFileLocator classFileLocator, @MaybeNull ClassFileVersion classFileVersion, Plugin.Engine.Listener listener, Plugin.Engine.ErrorHandler errorHandler, Plugin.Engine.Dispatcher.Factory dispatcherFactory, ElementMatcher.Junction<? super TypeDescription> ignoredTypeMatcher)
      Creates a new default plugin engine.
      Parameters:
      byteBuddy - The Byte Buddy instance to use.
      typeStrategy - The type strategy to use.
      poolStrategy - The pool strategy to use.
      classFileLocator - The class file locator to use.
      classFileVersion - The class file version to use for multi-release jars, or null.
      listener - The listener to use.
      errorHandler - The error handler to use.
      dispatcherFactory - The dispatcher factory to use.
      ignoredTypeMatcher - A matcher for types to exclude from transformation.
  • Method Details

    • of

      public static Plugin.Engine of(EntryPoint entryPoint, ClassFileVersion classFileVersion, MethodNameTransformer methodNameTransformer)
      Creates a plugin engine from an EntryPoint.
      Parameters:
      entryPoint - The entry point to resolve into a plugin engine.
      classFileVersion - The class file version to assume.
      methodNameTransformer - The method name transformer to use.
      Returns:
      An appropriate plugin engine.
    • scan

      public static Set<String> scan(ClassLoader classLoader) throws IOException
      Scans a class loader for plugins declared in a META-INF/net.bytebuddy/build.plugins file.
      Parameters:
      classLoader - The class loader to scan.
      Returns:
      A set containing all plugins that were found.
      Throws:
      IOException - If an I/O exception occurred.
    • main

      public static void main(String... argument) throws ClassNotFoundException, IOException
      Runs a plugin engine using the first and second argument as source and target file location and any additional argument as the fully qualified name of any plugin to apply.
      Parameters:
      argument - The arguments for running the plugin engine.
      Throws:
      ClassNotFoundException - If a plugin class cannot be found on the system class loader.
      IOException - If an I/O exception occurs.
    • with

      public Plugin.Engine with(ByteBuddy byteBuddy)
      Defines a new Byte Buddy instance for usage for type creation.
      Parameters:
      byteBuddy - The Byte Buddy instance to use.
      Returns:
      A new plugin engine that is equal to this engine but uses the supplied Byte Buddy instance.
    • with

      public Plugin.Engine with(Plugin.Engine.TypeStrategy typeStrategy)
      Defines a new type strategy which determines the transformation mode for any instrumented type.
      Parameters:
      typeStrategy - The type stategy to use.
      Returns:
      A new plugin engine that is equal to this engine but uses the supplied type strategy.
    • with

      public Plugin.Engine with(Plugin.Engine.PoolStrategy poolStrategy)
      Defines a new pool strategy that determines how types are being described.
      Parameters:
      poolStrategy - The pool strategy to use.
      Returns:
      A new plugin engine that is equal to this engine but uses the supplied pool strategy.
    • with

      public Plugin.Engine with(ClassFileLocator classFileLocator)
      Appends the supplied class file locator to be queried for class files additionally to any previously registered class file locators.
      Parameters:
      classFileLocator - The class file locator to append.
      Returns:
      A new plugin engine that is equal to this engine but with the supplied class file locator being appended.
    • with

      public Plugin.Engine with(@MaybeNull ClassFileVersion classFileVersion)
      Uses the supplied ClassFileVersion as a base for resolving multi-release jars, or null if multi-release jars should not be resolved but be treated as regular jar files. This property might not be applied if the underlying location mechanism does not supply manual resource resolution. Note that classes that are of newer class file versions than the specified version are not resolved and simply copied.
      Parameters:
      classFileVersion - The class file version to use or null if multi-release jars should be ignored.
      Returns:
      A new plugin engine that is equal to this engine but with the supplied class file version being used.
    • with

      public Plugin.Engine with(Plugin.Engine.Listener listener)
      Appends the supplied listener to this engine.
      Parameters:
      listener - The listener to append.
      Returns:
      A new plugin engine that is equal to this engine but with the supplied listener being appended.
    • withoutErrorHandlers

      public Plugin.Engine withoutErrorHandlers()
      Replaces the error handlers of this plugin engine without applying any error handlers.
      Returns:
      A new plugin engine that is equal to this engine but without any error handlers being registered.
    • withErrorHandlers

      public Plugin.Engine withErrorHandlers(List<? extends Plugin.Engine.ErrorHandler> errorHandlers)
      Replaces the error handlers of this plugin engine with the supplied error handlers.
      Parameters:
      errorHandlers - The error handlers to apply.
      Returns:
      A new plugin engine that is equal to this engine but with only the supplied error handlers being applied.
    • with

      public Plugin.Engine with(Plugin.Engine.Dispatcher.Factory dispatcherFactory)
      Replaces the dispatcher factory of this plugin engine with the supplied dispatcher factory.
      Parameters:
      dispatcherFactory - The dispatcher factory to use.
      Returns:
      A new plugin engine that is equal to this engine but with the supplied dispatcher factory being used.
    • ignore

      public Plugin.Engine ignore(ElementMatcher<? super TypeDescription> matcher)
      Ignores all types that are matched by this matcher or any previously registered ignore matcher.
      Parameters:
      matcher - The ignore matcher to append.
      Returns:
      A new plugin engine that is equal to this engine but which ignores any type that is matched by the supplied matcher.
    • apply

      public Plugin.Engine.Summary apply(Plugin.Engine.Source source, Plugin.Engine.Target target, List<? extends Plugin.Factory> factories) throws IOException
      Applies this plugin engine onto a given source and target.
      Parameters:
      source - The source to use.
      target - The target to use.
      factories - A list of plugin factories to a apply.
      Returns:
      A summary of the applied transformation.
      Throws:
      IOException - If an I/O error occurs.