Interface IEnginesPlugin

All Superinterfaces:
IPlugin
All Known Implementing Classes:
AbstractEnginesPlugin

public interface IEnginesPlugin extends IPlugin
Interface for standard JEB engines plugin. Engines plugins run within an engines context (JEB back-end). They can register for events and act on those events. They are meant to perform background tasks to enhance an analysis context. Engines plugins, unlike unit plugins, should not be designed to identify and process input artifacts.

Engines plugins may be written as:

  • compiled plugins: they are Jar archives dropped in the JEB plugins folder
  • script plugins: they are written in Java or Python and dropped in the scripts sub-directory of the JEB plugins folder. Script plugins are reloaded by JEB when a change is detected. However, the load() method is not called again when a script plugin changed and was reloaded. (load methods are called when JEB is starting up and loading plugins Therefore, while developing script plugins, you may have to consider calling load from within execute.)

Life-cycle: engines plugins are instantiated once.

Engines plugins are retrievable via IEnginesContext.getEnginesPlugins().

In the GUI client, engines plugins may be executed via the File menu, command Plugins, Execute an Engines Plugin.

  • Method Details

    • load

      void load(IEnginesContext engctx)
      This method is called by the owner context exactly once, just after the engines plugin instantiation.

      In the called of a script plugin that was hot-reloaded, this method is not called again See the javadoc notes above.

      Parameters:
      engctx - the context in which this plugin executes (never null)
    • execute

      void execute(IEnginesContext engctx)
      Parameters:
      engctx - the context in which this plugin executes (never null)
    • execute

      void execute(IEnginesContext engctx, Map<String,String> executionOptions)
      Execute the plugin code within a given engines context. Plugin writers should consider this as the execution entry-point.

      This method is optional and serves to execute on-demand calls, usually triggered by a client via the software front-end. Plugins may decide to start their workload in load(IEnginesContext).

      Parameters:
      engctx - the context in which this plugin executes (never null)
      executionOptions - optional execution options provided by the caller; the list of options that could be provided is specified by getExecutionOptionDefinitions(IEnginesContext)
    • getExecutionOptionDefinitions

      default List<? extends IOptionDefinition> getExecutionOptionDefinitions(IEnginesContext engctx)
      Retrieve a list of option definitions.
      Parameters:
      engctx - the context in which this plugin executes (never null)
      Returns:
      optional list of option definitions
    • getExecutionOptionDefinitions

      default List<? extends IOptionDefinition> getExecutionOptionDefinitions()
      Retrieve a list of option definitions. Starting from JEB 4.31, this method must not be implemented. Instead, implementors must implement getExecutionOptionDefinitions(IEnginesContext).
      Returns:
      optional list of option definitions