Java調(diào)用自己開發(fā)的Kettle plugin插件

反正找了一天天也沒找到G叟ぁ!脓匿! Kettle 6.1 相比 Kettle 3 改動太大了淘钟。下面直接上代碼,備忘陪毡!

在初始化

KettleEnvironment.init();   

添加插件如下代碼米母,就能夠注冊一個Step的插件了

List<String> empty = Collections.emptyList();
// 這個map別復(fù)用了,下一個插件重新new一個毡琉,不然即使clear了铁瞒,下一個插件也不能注冊成功
Map<Class<?>,String> xxxxClassMap=new HashMap<Class<?>,String>();
// xxxxMeta 就是開發(fā)的插件的Meta類了
xxxxClassMap.put(StepMetaInterface.class,xxxxMeta.class.getName());
PluginInterface xxxxPlugin=new Plugin(
    new String[]{"MergeField"},
    StepPluginType.class,
    StepMetaInterface.class,
    "轉(zhuǎn)換",
    "插件的名字",
    "插件的描述,不影響java執(zhí)行",
    "插件的圖片桅滋,不影響java執(zhí)行",
    false,
    false,
    xxxxClassMap,
    empty,
    null,
    null);
PluginRegistry.getInstance().registerPlugin(StepPluginType.class,xxxxPlugin);

Map<Class<?>,String> anotherClassMap=new HashMap<Class<?>,String>();
// anotherMeta 就是開發(fā)的插件的Meta類了
xxxxClassMap.put(StepMetaInterface.class,anotherMeta.class.getName());
PluginInterface anotherPlugin=new Plugin(
    new String[]{"MergeField"},
    StepPluginType.class,
    StepMetaInterface.class,
    "轉(zhuǎn)換",
    "插件的名字",
    "插件的描述慧耍,不影響java執(zhí)行",
    "插件的圖片身辨,不影響java執(zhí)行",
    false,
    false,
    anotherClassMap,
    empty,
    null,
    null);
PluginRegistry.getInstance().registerPlugin(StepPluginType.class,anotherPlugin);

如此這般就能運(yùn)行了
附上java調(diào)用stepMeta的完整代碼

KettleEnvironment.init();   
List<String> empty = Collections.emptyList();
// 這個map別復(fù)用了,下一個插件重新new一個芍碧,不然即使clear了煌珊,下一個插件也不能注冊成功
Map<Class<?>,String> xxxxClassMap=new HashMap<Class<?>,String>();
// xxxxMeta 就是開發(fā)的插件的Meta類了
xxxxClassMap.put(StepMetaInterface.class,xxxxMeta.class.getName());
PluginInterface xxxxPlugin=new Plugin(
    new String[]{"MergeField"},
    StepPluginType.class,
    StepMetaInterface.class,
    "轉(zhuǎn)換",
    "插件的名字",
    "插件的描述,不影響java執(zhí)行",
    "插件的圖片泌豆,不影響java執(zhí)行",
    false,
    false,
    xxxxClassMap,
    empty,
    null,
    null);
PluginRegistry.getInstance().registerPlugin(StepPluginType.class,xxxxPlugin);
// 數(shù)據(jù)庫連接元對象(連接名稱定庵,不必與kettle中配置的保持一致:數(shù)據(jù)庫類型:連接方式(kettle支持的連接方式):資源庫IP:資源庫實例名:資源庫端口:資源庫用戶名:資源庫用戶密碼)  
DatabaseMeta connection = new DatabaseMeta("資源庫名稱,不影響", "Oracle", DatabaseMeta.getAccessTypeDesc(0), "oracle的地址", "oracle的實例", "1521", "oracle用戶名", "oracle密碼");  
// 資源庫元對象  
KettleDatabaseRepositoryMeta repinfo = new KettleDatabaseRepositoryMeta();  
repinfo.setConnection(connection);  
// 資源庫  
KettleDatabaseRepository repository = new KettleDatabaseRepository();
repository.init(repinfo);
// 連接資源庫  
repository.connect("admin","admin",true);  
// 資源庫目錄對象 
RepositoryDirectoryInterface directoryInterface=repository.loadRepositoryDirectoryTree();
// 轉(zhuǎn)換元對象  
TransMeta transMeta=repository.loadTransformation("tran的名稱",directoryInterface,null,true,null);
// 轉(zhuǎn)換  
Trans trans = new Trans(transMeta);

// 執(zhí)行轉(zhuǎn)換  
trans.execute(null);  
// 等待轉(zhuǎn)換執(zhí)行結(jié)束  
if(trans.getErrors()>0){
    System.out.println("transformation error");
}else{
    System.out.println("transformation successfully");
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末践美,一起剝皮案震驚了整個濱河市洗贰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陨倡,老刑警劉巖敛滋,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兴革,居然都是意外死亡绎晃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門杂曲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庶艾,“玉大人,你說我怎么就攤上這事擎勘≡圩幔” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵棚饵,是天一觀的道長煤裙。 經(jīng)常有香客問我,道長噪漾,這世上最難降的妖魔是什么硼砰? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮欣硼,結(jié)果婚禮上题翰,老公的妹妹穿的比我還像新娘。我一直安慰自己诈胜,他們只是感情好豹障,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耘斩,像睡著了一般沼填。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上括授,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼荚虚。 笑死薛夜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的版述。 我是一名探鬼主播梯澜,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渴析!你這毒婦竟也來了晚伙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤俭茧,失蹤者是張志新(化名)和其女友劉穎咆疗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體母债,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡午磁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了毡们。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迅皇。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖衙熔,靈堂內(nèi)的尸體忽然破棺而出登颓,到底是詐尸還是另有隱情,我是刑警寧澤红氯,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布框咙,位于F島的核電站,受9級特大地震影響脖隶,放射性物質(zhì)發(fā)生泄漏扁耐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一产阱、第九天 我趴在偏房一處隱蔽的房頂上張望婉称。 院中可真熱鬧,春花似錦构蹬、人聲如沸王暗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俗壹。三九已至,卻和暖如春藻烤,著一層夾襖步出監(jiān)牢的瞬間绷雏,已是汗流浹背头滔。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留涎显,地道東北人坤检。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像期吓,于是被迫代替她去往敵國和親早歇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,180評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理讨勤,服務(wù)發(fā)現(xiàn)箭跳,斷路器,智...
    卡卡羅2017閱讀 134,665評論 18 139
  • 泅渡潭千,一只蟲子住進(jìn)了蒲公英的家里谱姓,卻笨的逃不出去 那團(tuán)團(tuán)的潔白是致命的誘惑 不知如何身已深陷 無法自拔 終有日向往...
    一鉤殘月帶三星閱讀 285評論 0 3
  • 介紹 tensorflow是由google開源的一個用于機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)研究的library。官網(wǎng)地址為http...
    YunaY閱讀 2,646評論 1 4
  • 今天家里來了客人 估摸著也六七十歲了 跟我外公認(rèn)識幾十年了 好久沒聯(lián)系的舊友竟然在路上碰著了 外公就把他叫到家里來...
    Dorcas閱讀 381評論 0 1