If you want to write your own Pentaho Data Integration Plug-In, this is the right place for you.

This information is collected from some posts of Matt in the forum and the developer mailing lists.

Note: More extensive and up to date information about plug-in development can be found within the documentation Extend Pentaho Data Integration.

In General 

Basics for Plug-In development (until 2.5.x)

At minimum you need 4 classes implementing the following interfaces (package be.ibridge.kettle.trans.step):

Don't get too creative when naming these classes. Spoon expects the metadata class name to end in "Meta" and the dialog class name to end in "Dialog", with the same prefix. So if your metadata object is called MyStepMeta, your dialog class will have to be called MyStepDialog. StepMetaInterface.getDialogClassName() is used only for finding the package, not the class name itself.

There are 50+ samples in the source code as this is the way all steps are constructed. What you need to do is add a plugin.xml file and an Icon to represent the step. Then you throw the 4 classes in a jar file. Throw all this : someplugin.jar, plugin.xml and someplugin.png in a directory under a kettle sub-directory : plugins/transformations/steps/SomePlugin.

You can also throw extra jar files you need in there and specify it's use in the plugin.xml file. (very simple)

See the attachment DummyPlugin.zip.

Changes from 2.5.x to 3.0

...and many more, make sure to check the developer mailing list mentioned above (wink)  

See the attachment DummyPlugin3.zip

Committing your Plug-In

If you donate it to the public as open-source or not, you can add your plugin to the list of available plug-ins.