本文概述

本文提到了kettle 9 插件开发的过程,遇到的问题与相应的解决办法。
对于一个欠缺的kettle 9 插件开发过程,须要相干的技术点与对应的优良的参考资料,进行了整顿、记录,试图节约大家开发kettle 9 插件过程查问各种相干材料的宝贵时间。

开发环境阐明

kettle版本:9.1
jdk版本:jdk1.8

IDE的抉择

倡议抉择idea,打包、运行比拟不便一些。

下载kettle 9 插件demo

下载门路在参考文献的链接12
倡议大家应用链接1对应的demo,它是我批改后的,且加了SWT测试相干的POM,在这个demo 工程中,不便大家,对SWT相干的各种类开展测试。

kettle插件demo阐明

示例Step插件旨在显示Step插件的最小性能实现,您能够应用它作为开发自定义转换步骤的根底。
示例步骤插件性能向行流增加一个字符串字段,并用helloworld!填充它!。上面的截图展现了通过demo转换前后的成果。

官网中,对这个demo的形容,能够参考这里3
运行这个插件的所须要的kettle转换文件,在这里4。大家能够通过kettle加载这个转换,进行测试。
备注:做这个插件demo的测试,倡议大家浏览完本文与链接35,否则,有一些背景常识不晓得,测试起来,感觉不晓得如何下手。

kettle插件UI的开发

大家对SWT技术开发java界面比拟相熟的话,能够跳过本大节内容。
不相熟的话,能够参考下这两个文献67
我在kettle-sdk-step-plugin/src/test/java/org/example/my/ui/SWTDemo.java中把链接中的例子,复制了一遍,大家能够对照着,过一遍。不便大家疾速上手。
大家在DemoStepDialog.open()中编写的UI代码,能够复制到kettle-sdk-step-plugin/src/test/java/org/example/my/ui/DemoStepDialogTest.java中,运行一遍,察看下运行成果,防止反复关上kettle、加载插件来调试kettle插件。

对于SWT的API,只提一点,kettle对SWT进行了封装,有一个类为LabelText,这是原生的SWT API中没有的。它相当于原生的Label Text整合来的一个类。

// lt在界面上展现成果, label的名称 ______________LabelText lt = new LabelText(shell, "label的名称",null);

kettle插件接口解说

demo中类的作用介绍

类名作用
DemoStepDialogkettle插件UI开发的类,kettle插件运行须要一些输出参数,能够在这个类中搭建一个页面,来接管这些参数。
DemoStepMetakettle从Dialog类中接管的输出参数的保留到内存中,保留到数据库(资源库)中,这种保留逻辑,在这个类中实现。
DemoStepDataDemoStep中实例化的资源,赋值给本类的属性。
DemoStep解决rows。这外面次要由processRow()办法来解决。次要的插件解决逻辑在这个类中编写实现。
messages_en_US.propertie英文化的文件,即把kettle插件界面上的单词显示为英文,能够以key=value模式指定。
demo.png/demo.svg插件显示的图标。

具体的开发过程的细节,接口含意,大家能够参考这两篇文章85,解说的很具体。

参考文献


  1. https://github.com/chuzhixing... ↩
  2. https://sourceforge.net/proje... (Pentaho from Hitachi Vantara - Browse /Pentaho 9.1/plugins at SourceForge.net) ↩
  3. https://help.pentaho.com/Docu... (Sample Step Plugin) ↩
  4. https://github.com/chuzhixing... (ketlle软件中新建的转换) ↩
  5. https://blog.csdn.net/u013468... (Kettle — 自定义插件) ↩
  6. https://www.cnblogs.com/Dream... (对于SWT中的Label类和Text类) ↩
  7. https://www.cnblogs.com/Dream... (SWT中的布局之-----FormLayout(表格局布局)) ↩
  8. https://blog.csdn.net/ejunnet... (Kettle插件开发(转换步骤)) ↩