本文概述
本文提到了 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 中类的作用介绍
类名 | 作用 |
---|---|
DemoStepDialog | kettle 插件 UI 开发的类,kettle 插件运行须要一些输出参数,能够在这个类中搭建一个页面,来接管这些参数。 |
DemoStepMeta | kettle 从 Dialog 类中接管的输出参数的保留到内存中,保留到数据库(资源库)中,这种保留逻辑,在这个类中实现。 |
DemoStepData | DemoStep 中实例化的资源,赋值给本类的属性。 |
DemoStep | 解决 rows。这外面次要由 processRow()办法来解决。次要的插件解决逻辑在这个类中编写实现。 |
messages_en_US.propertie | 英文化的文件,即把 kettle 插件界面上的单词显示为英文,能够以 key=value 模式指定。 |
demo.png/demo.svg | 插件显示的图标。 |
具体的开发过程的细节,接口含意,大家能够参考这两篇文章85,解说的很具体。
参考文献
- https://github.com/chuzhixing… ↩
- https://sourceforge.net/proje… (Pentaho from Hitachi Vantara – Browse /Pentaho 9.1/plugins at SourceForge.net) ↩
- https://help.pentaho.com/Docu… (Sample Step Plugin) ↩
- https://github.com/chuzhixing… (ketlle 软件中新建的转换) ↩
- https://blog.csdn.net/u013468… (Kettle — 自定义插件) ↩
- https://www.cnblogs.com/Dream… (对于 SWT 中的 Label 类和 Text 类) ↩
- https://www.cnblogs.com/Dream… (SWT 中的布局之 —–FormLayout(表格局布局)) ↩
- https://blog.csdn.net/ejunnet… (Kettle 插件开发(转换步骤)) ↩