乐趣区

关于java:kettle-9-插件开发

本文概述

本文提到了 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,解说的很具体。

参考文献


  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 插件开发(转换步骤)) ↩
退出移动版