public interface

IEnginesPlugin

implements IPlugin
com.pnfsoftware.jeb.core.IEnginesPlugin
Known Indirect Subclasses

Class Overview

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 getEnginesPlugins().

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

Summary

Public Methods
abstract void execute(IEnginesContext engctx)
abstract void execute(IEnginesContext engctx, Map<String, String> executionOptions)
Execute the plugin code within a given engines context.
abstract List<? extends IOptionDefinition> getExecutionOptionDefinitions()
Retrieve a list of option definitions.
abstract List<? extends IOptionDefinition> getExecutionOptionDefinitions(IEnginesContext engctx)
Retrieve a list of option definitions.
abstract void load(IEnginesContext engctx)
This method is called by the owner context exactly once, just after the engines plugin instantiation.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.IPlugin

Public Methods

public abstract void execute (IEnginesContext engctx)

Parameters
engctx the context in which this plugin executes (never null)

public abstract 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)

public abstract 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

public abstract 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

public abstract 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)