Extension Point Plugins
Extension point plugins, introduced in the Kettle 5 API, allow someone to add plugins to the Kettle ecosystem for execution at specific points in the Kettle code.
The plugin implements the ExtensionPointInterface interface:
public interface ExtensionPointInterface { /** * This method is called by the Kettle code * @param log the logging channel to log debugging information to * @param object The subject object that is passed to the plugin code * @throws KettleException In case the plugin decides that an error has occurred and the parent process should stop. */ public void callExtensionPoint(LogChannelInterface log, Object object) throws KettleException; }
The following extension points are available by default (see the KettleExtensionPoint enum):
ID |
Description |
Java object passed |
---|---|---|
TransformationPrepareExecution |
A transformation begins to prepare execution |
Trans |
TransformationStartThreads |
A transformation begins to start |
Trans |
TransformationStart |
A transformation has started |
Trans |
TransformationFinish |
A transformation finishes |
Trans |
TransformationMetaLoaded |
Transformation metadata was loaded |
TransMeta |
SpoonTransMetaExecutionStart |
Spoon initiates the execution of a transformation |
TransMeta |
SpoonTransExecutionConfiguration |
Right before the configuration of a transformation to be executed takes place in Spoon |
TransExecutionConfiguration |
JobStart |
A job starts |
Job |
JobFinish |
A job finishes |
Job |
JobBeforeJobEntryExecution |
Before a job entry executes |
JobExecutionExtension |
JobAfterJobEntryExecution |
After a job entry executes |
JobExecutionExtension |
JobBeginProcessing |
Start of a job at the end of the log table handling |
JobExecutionExtension |
JobPainterArrow |
Draw additional information on top of a job hop (arrow) |
JobPainterExtension |
JobGraphJobEntrySetMenu |
Manipulate the menu on right click on a job entry |
JobGraphJobEntryMenuExtension |
JobMetaLoaded |
Job metadata was loaded |
JobMeta |
SpoonJobMetaExecutionStart |
Spoon initiates the execution of a job |
JobMeta |
SpoonJobExecutionConfiguration |
Right before the configuration of a job to be executed takes place in Spoon |
JobExecutionConfiguration |
DatabaseConnected |
After a successful connection to a database |
Database |
DatabaseDisconnected |
After a successful disconnection from a database |
Database |
StepBeforeInitialize |
Before a step is about to be initialized |
StepInitThread |
StepAfterInitialize |
After a step is initialized |
StepInitThread |
StepBeforeStart |
Before a step is about to be started |
StepMetaDataCombi |
StepFinished |
After a step has finished |
StepMetaDataCombi |
The class implementing the ExtensionPointInterface should be annotated with @ExtensionPoint. The following information needs to be passed:
- id : the unique ID of the plugin
- extensionPointId: the extension point ID, see the table above for the available extension points
- description: a description so that folks can see what it does in the plugin browser