Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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

DatabaseConnected

After a successful connection to a database

Database

DatabaseDisconnected

After a successful disconnection from a database

Database

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
  • No labels