Kettle插件开发(Job)
来源:互联网 发布:我要开淘宝网店 编辑:程序博客网 时间:2024/05/18 02:28
一个Kettle的job插件主要包括两个类,和转换步骤插件一样,一个是用于客户端定义参数配置的UI Dialog类,一个是Job entry类,主要是跟踪保存客户的配置信息和执行job具体的功能(在 execute() 方法中执行)。
1、UI Dialog类。
UI Dailog类和转换步骤中的Dailog一样,在open方法中进行配置界面的UI绘制,然后能过构造参数中的JobEntryInterface类加载历史配置信息到各种UI控件上。和转换步骤一样,注意的配置信息变更状态的更新。Job Dialog和Step Dialog的不同之处包括以下几点:
(1)job Dialog的open方法返回的是一个更改后的job entry,而StepDialog返回的是Step的名字。
(2)job Dialog必须保证用户输入一个正确的job entry名字,不能接受一个空的名字,如果名字为空,不能让用户保存配置信息。
2、国际化。
job插件的国际化与转换步骤的国际化相同,这里不再阐述。
3、job entry类。
这个类有以下三个主要的职责:
(1)跟踪处理用户的配置信息(包括序列化到XML或资源库)。
job entry类通过一些私有变量来跟踪用户的配置信息,提供一些get\set方法使其能够方便的访问。同时也实现一些方法来将配置信息保存(读取)到XML或资源库,也提供一个clone方法来处理用户复制job的一些初始化工作。
(2)向Kettle引擎报告各种处理状态(下一步的跳转方式)。
Kettle客户端Spoon为job entry预设了三种不同的处理状态:成功success(绿色),失败failure(红色),无条件的unconditional(黑色)。每一个job entry都要提供关于它所支持的处理状态信息。Kettle会调用evaluates()方法来确定job entry是否支持成功和失败,调用isUnconditional()来确定是否支持无条件跳转。除非你不想支持这个job之后执行别的后续任务,否则必须有一个能返回true。如果你想给客户更多的选择,那么两个方法都返回true即可。如下所示:
publicbooleanevaluates() {
returntrue;
}
publicbooleanisUnconditional() {
returntrue;
}
(3)执行这个任务需要执行的相关操作。
当一个控制流程到达job entry时,Kettle将会执行它的execute()方法,这里才执行真正的一个任务的具体操作。这个方法有两个参数,第一个是一个结果对象(result object),第二个是当前任务是第几个任务的数值(这个参数很少会被用到)。结果对象里有上一个任务的job entry。很少情况下当前任务会关心上一个任务的执行状态,所以基本上都是在这个结果对象里标识当前任务是否执行成功,如果你想跳转到无条件跳转路径上,那么你直接返回未更改的结果对象就可以。
4、插件定义(配置)。
<?xmlversion="1.0"encoding="UTF-8"?>
<pluginid="TriggerReportOnJasperServer"
iconfile="jaspersoft.png"
description="Trigger Report on JasperServer"
tooltip="Trigger Report on JasperServer"
category="Experimental"
classname="plugin.kettle.jasperserver.trigger.JobEntryJasperServerReport">
<libraries>
<libraryname="js-trigger-report.jar"/>
<libraryname="lib/jasper.jar"/>
<libraryname="lib/jasper-ws.jar"/>
</libraries>
</plugin>
需要在配置文件中配置图标,分类,job Entry类及引用的jar包。
原文:http://type-exit.org/adventures-with-open-source-bi/2010/07/developing-a-custom-kettle-plugin-triggering-a-report-on-jasperserver/
- Kettle插件开发(Job)
- Kettle插件开发(转换步骤)
- kettle plugin 插件开发
- Kettle plugin 插件开发
- kettle-插件开发
- Kettle插件开发流程
- rcp(插件开发)Job 进度条
- 开发kettle插件 环境搭建
- Kettle Plugin插件开发指导
- 详解kettle插件开发之一
- 开发kettle插件 环境搭建
- KETTLE命令行执行JOB(*.KJB)
- ETL工具——kettle插件开发(基础篇)
- Kettle 插件开发调试环境搭建(上)
- kettle插件开发流程(转)-看不懂,先记着
- win7下kettle插件开发环境搭建
- Kettle插件开发ClassCastException 解决思路
- Kettle Job机制
- Java URLConnection 总结
- linux中安装fcitx输入法
- 子类化Firefox窗口下的Dialog下的EditControl
- 2012—07—12 单链表
- zend framework 框架中自定义父控制器
- Kettle插件开发(Job)
- mapreduce程序编写注意事项
- Linux下反编译APK获取java代码和资源文件
- ss2h实现Excel下载
- ShellExecute的各种用法
- cout 输出格式控制 还是要注意点
- 书法解体
- C++学习笔记(一) 序列式容器及适配器
- ububtu下android源码下载详解