Engines
In the framework-core
library, an Engine
is a vital component tasked with orchestrating the execution of plugins. It operates based on a tool-config
, which outlines a specific sequence of plugins and groups for execution.
The Engine is responsible for managing the execution flow, handling errors, and facilitating event callbacks, collectively ensuring a robust and efficient system for plugin operations within the framework.
During the initialization phase of the Engine, the Registry
is introduced to manage registered plugins. The framework-common-extensions
supply a set of default plugins, while the system remains open to the registration of additional plugins as necessary.
Engine execution
The BaseEngine
class introduces the execute_engine
method. Key functionalities include:
- Accepting an engine portion of a tool-config and user options as parameters.
- Iterating through the tool-config to execute each plugin or group of plugins as defined passing the store and options along.
The default store is a simple dictionary that plugins can use to store and retrieve data. The store is passed to each plugin during execution, allowing for data to be shared between plugins. The format/structure of the store is defined by the user and can be modified as needed.
Plugin execution
In addition to engine execution, the BaseEngine
class facilitates individual plugin execution through the run_plugin
method. This method's responsibilities encompass:
- Initialization of the plugin with specified options.
- Execution of the plugin's
run
method, incorporating the plugin store as a parameter.
See plugin execution details for more info.