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:
Code Block |
---|
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