Dear Kettle devs,

I just posted about dynamic ETL metadata injection on my blog:

With this mail I now just wanted to quickly explain how this is achieved
Java API-wise on the step level.

Since version 4.1, the StepMetaInterface has an extra method:

* @return Optional interface that allows an external program to inject step
metadata in a standardized fashion.
* This method will return null if the interface is not available for this
public StepMetaInjectionInterface getStepMetaInjectionInterface();

The StepMetaInjectionInterface only has 2 methods that you need to implement
to make metadata injection work:

public List<StepInjectionMetaEntry> getStepInjectionMetadataEntries() throws
public void injectStepMetadataEntries(List<StepInjectionMetaEntry> metadata)
throws KettleException;

The first explains to third party programs (like the "ETL Metadata
Injection" step) about the various pieces of metadata that can be injected
into a step.
The second allows that metadata to be actually injected.

If you need a sample to get going, take a look at class
For now I'm implementing these interfaces based on requests from community,
partners and customers but I'm sure you guys can make this work in your own
PDI steps and plugins as well if you see a need.


Matt Casters <mcasters (AT) pentaho (DOT) org>
Chief Data Integration, Kettle founder, Author of Pentaho Kettle
(Wiley <>)
Pentaho : The Commercial Open Source Alternative for Business Intelligence

You received this message because you are subscribed to the Google Groups "kettle-developers" group.
To post to this group, send email to kettle-developers (AT) googlegroups (DOT) com.
To unsubscribe from this group, send email to kettle-developers+unsubscribe (AT) g...oups (DOT) com.
For more options, visit this group at