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