PDI Extension Point Plugins
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 |
Since version |
---|---|---|---|
TransformationPrepareExecution |
A transformation begins to prepare execution |
Trans |
5.0 |
TransformationStartThreads |
A transformation begins to start |
Trans |
5.0 |
TransformationStart |
A transformation has started |
Trans |
5.0 |
TransformationFinish |
A transformation finishes |
Trans |
5.0 |
TransformationMetaLoaded |
Transformation metadata was loaded |
TransMeta |
5.0 |
TransPainterArrow |
Draw additional information on top of a transformation hop (arrow) |
TransPainterExtension |
5.0 |
TransPainterStep |
Draw additional information on top of a transformation step icon |
TransPainterExtension |
5.0 |
TransPainterStart |
Draw transformation or plugin metadata at the start (below the rest) |
TransPainter |
5.1 |
TransPainterEnd |
Draw transformation or plugin metadata at the end (on top of all the rest) |
TransPainter |
5.1 |
TransGraphMouseDown |
A left or right button was clicked in a transformation |
TransGraphExtension |
5.1 |
TransGraphMouseDoubleClick |
A left or right button was double-clicked in a transformation |
TransGraphExtension |
5.1 |
SpoonTransMetaExecutionStart |
Spoon initiates the execution of a transformation |
TransMeta |
5.0 |
SpoonTransExecutionConfiguration |
Right before the configuration of a transformation to be executed takes place in Spoon |
TransExecutionConfiguration |
5.0 |
JobStart |
A job starts |
Job |
5.0 |
JobFinish |
A job finishes |
Job |
5.0 |
JobBeforeJobEntryExecution |
Before a job entry executes |
JobExecutionExtension |
5.0 |
JobAfterJobEntryExecution |
After a job entry executes |
JobExecutionExtension |
5.0 |
JobBeginProcessing |
Start of a job at the end of the log table handling |
JobExecutionExtension |
5.0 |
JobPainterArrow |
Draw additional information on top of a job hop (arrow) |
JobPainterExtension |
5.0 |
TransPainterJobEntry |
Draw additional information on top of a job entry copy icon |
JobPainterExtension |
5.0 |
JobGraphJobEntrySetMenu |
Manipulate the menu on right click on a job entry |
JobGraphJobEntryMenuExtension |
5.0 |
JobPainterStart |
Draw job or plugin metadata at the start (below the rest) |
JobPainter |
5.1 |
JobPainterEnd |
Draw job or plugin metadata at the end (on top of all the rest) |
JobPainter |
5.1 |
JobGraphMouseDown |
A left or right button was clicked in a job |
JobGraphExtension |
5.1 |
JobGraphMouseDoubleClick |
A left or right button was double-clicked in a job |
JobGraphExtension |
5.1 |
JobMetaLoaded |
Job metadata was loaded |
JobMeta |
5.0 |
SpoonJobMetaExecutionStart |
Spoon initiates the execution of a job |
JobMeta |
5.0 |
SpoonJobExecutionConfiguration |
Right before the configuration of a job to be executed takes place in Spoon |
JobExecutionConfiguration |
5.0 |
DatabaseConnected |
After a successful connection to a database |
Database |
5.0 |
DatabaseDisconnected |
After a successful disconnection from a database |
Database |
5.0 |
StepBeforeInitialize |
Before a step is about to be initialized |
StepInitThread |
5.0 |
StepAfterInitialize |
After a step is initialized |
StepInitThread |
5.0 |
StepBeforeStart |
Before a step is about to be started |
StepMetaDataCombi |
5.0 |
StepFinished |
After a step has finished |
StepMetaDataCombi |
5.0 |
CarteStartup |
Right after the Carte webserver has started and is fully functional |
WebServer |
5.1 |
CarteShutdown |
Right before the Carte webserver will shut down |
WebServer |
5.1 |
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