kettle源代码中新增作业类型方法_第1页
kettle源代码中新增作业类型方法_第2页
kettle源代码中新增作业类型方法_第3页
kettle源代码中新增作业类型方法_第4页
kettle源代码中新增作业类型方法_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

kettle 源代码中新增作业类型方法样例源代码中新增作业类型方法样例 中航信研发中心数据服务部中航信研发中心数据服务部 李永江李永江 目录 1 在作业相关入口中增加新作业类型配置项 2 2 在作业相关属性文件中增加新作业类型配置项 2 4 增加作业类型对应的设计器编辑窗口类文件 37 1 在作业相关入口中增加新作业类型配置项在作业相关入口中增加新作业类型配置项 在 src 下的 kettle job entries xml 文件中增加新增作业类型的对应项 如下所示 2 在作业相关属性文件中增加新作业类型配置项在作业相关属性文件中增加新作业类型配置项 在 src 下的包 org pentaho di job entry messages 中找到 messages en US properties 文件 在文件尾部添加 JobEntry SymmetricEncryptFiles TypeDesc Symmetric Encryption JobEntry SymmetricEncryptFiles Tooltip Symmetric Encryption 如果要中文描述可以在 messages zh CN properties 文件尾加上 JobEntry SymmetricEncryptFiles TypeDesc u5BF9 u79F0 u7B97 u6CD5 u52A0 u5BC6 u6587 u4EF6 JobEntry SymmetricEncryptFiles Tooltip u4F7F u7528 u5BF9 u79F0 u7B97 u6CD5 u52A0 u5BC6 u6587 u4EF6 3 添加作业务类型实现文件及对应的属性文件添加作业务类型实现文件及对应的属性文件 在 src 下的包 org pentaho di job entries 下添加 symencryptfiles 目录 并在这个目录下添加文件 JobEntrySymmetricEncryptFiles 并在个目录下添加子目录 messages 和其下的文件 messages en US properties 文件分别如下 i18n org pentaho di job entry JobEntry SymmetricEncryptFiles TypeDesc org pentaho di job entries symencryptfiles JobEntrySymmetricEncryptFiles i18n org pentaho di job JobCategory Category FileEncryption i18n org pentaho di job entry JobEntry SymmetricEncryptFiles Tooltip ui images DESEncrypt png Pentaho Data Integration Copyright C 2002 2012 by Pentaho Licensed under the Apache License Version 2 0 the License you may not use this file except in compliance with the License You may obtain a copy of the License at http www apache org licenses LICENSE 2 0 Unless required by applicable law or agreed to in writing software distributed under the License is distributed on an AS IS BASIS WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied See the License for the specific language governing permissions and limitations under the License package org pentaho di job entries symencryptfiles import static org pentaho di job entry validator AbstractFileValidator putVariableSpace import static org pentaho di job entry validator AndValidator putValidators import static org pentaho di job entry validator JobEntryValidatorUtils andValidator import static org pentaho di job entry validator JobEntryValidatorUtils fileExistsValidator import static org pentaho di job entry validator JobEntryValidatorUtils notNullValidator import java io import java util List import java util regex Matcher import java util regex Pattern import java text SimpleDateFormat import java util Date import org w3c dom Node import org pentaho di cluster SlaveServer import org pentaho di core CheckResultInterface import org pentaho di core Const import org pentaho di core Result import org pentaho di core ResultFile import org pentaho di core RowMetaAndData import org pentaho di core database DatabaseMeta import org pentaho di core exception KettleDatabaseException import org pentaho di core exception KettleException import org pentaho di core exception KettleXMLException import org pentaho di core vfs KettleVFS import org pentaho di core xml XMLHandler import org pentaho di i18n BaseMessages import org pentaho di job Job import org pentaho di job JobMeta import org pentaho di job entry JobEntryBase import org pentaho di job entry JobEntryInterface import org pentaho di job entry validator ValidatorContext import org pentaho di repository ObjectId import org pentaho di repository Repository import mons vfs FileObject import mons vfs FileType import mons vfs FileSelectInfo import mons vfs AllFileSelector This defines a symmetric decrypt files job entry author Samatar Hassan since 25 02 2008 public class JobEntrySymmetricEncryptFiles extends JobEntryBase implements Cloneable JobEntryInterface private static Class PKG JobEntrySymmetricEncryptFiles class for i18n purposes needed by Translator2 NON NLS 1 private SimpleDateFormat daf private Encryptable encryptor public boolean arg from previous public boolean include subfolders public boolean add result filesname public boolean destination is a file public boolean create destination folder public String source filefolder public String destination filefolder public String wildcard private String nr errors less than private String success condition public String SUCCESS IF AT LEAST X FILES UN ZIPPED success when at least public String SUCCESS IF ERRORS LESS success if errors less public String SUCCESS IF NO ERRORS success if no errors private String encryptionType public String Encryption Type AES aes public String Encryption Type DES des private boolean add date private boolean add time private boolean SpecifyFormat private String date time format private boolean AddDateBeforeExtension private boolean DoNotKeepFolderStructure private String iffileexists private String destinationFolder private String ifmovedfileexists private String moved date time format private boolean AddMovedDateBeforeExtension private boolean add moved date private boolean add moved time private boolean SpecifyMoveFormat public boolean create move to folder private int NrErrors 0 private int NrSuccess 0 private boolean successConditionBroken false private boolean successConditionBrokenExit false private int limitFiles 0 public JobEntrySymmetricEncryptFiles String n super n create move to folder false SpecifyMoveFormat false add moved date false add moved time false AddMovedDateBeforeExtension false moved date time format null ifmovedfileexists do nothing destinationFolder null DoNotKeepFolderStructure false arg from previous false source filefolder null destination filefolder null wildcard null include subfolders false add result filesname false destination is a file false create destination folder false nr errors less than 10 success condition SUCCESS IF NO ERRORS add date false add time false SpecifyFormat false date time format null AddDateBeforeExtension false iffileexists do nothing encryptionType Encryption Type DES setID 1L public JobEntrySymmetricEncryptFiles this public Object clone JobEntrySymmetricEncryptFiles je JobEntrySymmetricEncryptFiles super clone return je public String getXML StringBuffer retval new StringBuffer 300 retval append super getXML retval append append XMLHandler addTagValue encryptionType encryptionType retval append append XMLHandler addTagValue arg from previous arg from previous retval append append XMLHandler addTagValue include subfolders include subfolders retval append append XMLHandler addTagValue add result filesname add result filesname retval append append XMLHandler addTagValue destination is a file destination is a file retval append append XMLHandler addTagValue create destination folder create destination folder retval append append XMLHandler addTagValue add date add date retval append append XMLHandler addTagValue add time add time retval append append XMLHandler addTagValue SpecifyFormat SpecifyFormat retval append append XMLHandler addTagValue date time format date time format retval append append XMLHandler addTagValue nr errors less than nr errors less than retval append append XMLHandler addTagValue success condition success condition retval append append XMLHandler addTagValue AddDateBeforeExtension AddDateBeforeExtension retval append append XMLHandler addTagValue DoNotKeepFolderStructure DoNotKeepFolderStructure retval append append XMLHandler addTagValue iffileexists iffileexists retval append append XMLHandler addTagValue destinationFolder destinationFolder retval append append XMLHandler addTagValue ifmovedfileexists ifmovedfileexists retval append append XMLHandler addTagValue moved date time format moved date time format retval append append XMLHandler addTagValue create move to folder create move to folder retval append append XMLHandler addTagValue add moved date add moved date retval append append XMLHandler addTagValue add moved time add moved time retval append append XMLHandler addTagValue SpecifyMoveFormat SpecifyMoveFormat retval append append XMLHandler addTagValue AddMovedDateBeforeExtension AddMovedDateBeforeExtension retval append append Const CR if source filefolder null for int i 0 i source filefolder length i retval append append Const CR retval append append XMLHandler addTagValue source filefolder source filefolder i retval append append XMLHandler addTagValue destination filefolder destination filefolder i retval append append XMLHandler addTagValue wildcard wildcard i retval append append Const CR retval append append Const CR return retval toString public void loadXML Node entrynode List databases List slaveServers Repository rep throws KettleXMLException try super loadXML entrynode databases slaveServers encryptionType XMLHandler getTagValue entrynode encryptionType arg from previous Y equalsIgnoreCase XMLHandler getTagValue entrynode arg from previous include subfolders Y equalsIgnoreCase XMLHandler getTagValue entrynode include subfolders add result filesname Y equalsIgnoreCase XMLHandler getTagValue entrynode add result filesname destination is a file Y equalsIgnoreCase XMLHandler getTagValue entrynode destination is a file create destination folder Y equalsIgnoreCase XMLHandler getTagValue entrynode create destination folder add date Y equalsIgnoreCase XMLHandler getTagValue entrynode add date add time Y equalsIgnoreCase XMLHandler getTagValue entrynode add time SpecifyFormat Y equalsIgnoreCase XMLHandler getTagValue entrynode SpecifyFormat AddDateBeforeExtension Y equalsIgnoreCase XMLHandler getTagValue entrynode AddDateBeforeExtension DoNotKeepFolderStructure Y equalsIgnoreCase XMLHandler getTagValue entrynode DoNotKeepFolderStructure date time format XMLHandler getTagValue entrynode date time format nr errors less than XMLHandler getTagValue entrynode nr errors less than success condition XMLHandler getTagValue entrynode success condition iffileexists XMLHandler getTagValue entrynode iffileexists destinationFolder XMLHandler getTagValue entrynode destinationFolder ifmovedfileexists XMLHandler getTagValue entrynode ifmovedfileexists moved date time format XMLHandler getTagValue entrynode moved date time format AddMovedDateBeforeExtension Y equalsIgnoreCase XMLHandler getTagValue entrynode AddMovedDateBeforeExtension create move to folder Y equalsIgnoreCase XMLHandler getTagValue entrynode create move to folder add moved date Y equalsIgnoreCase XMLHandler getTagValue entrynode add moved date add moved time Y equalsIgnoreCase XMLHandler getTagValue entrynode add moved time SpecifyMoveFormat Y equalsIgnoreCase XMLHandler getTagValue entrynode SpecifyMoveFormat Node fields XMLHandler getSubNode entrynode fields How many field arguments int nrFields XMLHandler countNodes fields field source filefolder new String nrFields destination filefolder new String nrFields wildcard new String nrFields Read them all for int i 0 i nrFields i Node fnode XMLHandler getSubNodeByNr fields field i source filefolder i XMLHandler getTagValue fnode source filefolder destination filefolder i XMLHandler getTagValue fnode destination filefolder wildcard i XMLHandler getTagValue fnode wildcard catch KettleXMLException xe throw new KettleXMLException BaseMessages getString PKG JobSymmetricEncryptFiles Error Exception UnableLoadXML xe public void loadRep Repository rep ObjectId id jobentry List databases List slaveServers throws KettleException try encryptionType rep getJobEntryAttributeString id jobentry encryptionType arg from previous rep getJobEntryAttributeBoolean id jobentry arg from previous include subfolders rep getJobEntryAttributeBoolean id jobentry include subfolders add result filesname rep getJobEntryAttributeBoolean id jobentry add result filesname destination is a file rep getJobEntryAttributeBoolean id jobentry destination is a file create destination folder rep getJobEntryAttributeBoolean id jobentry create destination folder nr errors less than rep getJobEntryAttributeString id jobentry nr errors less than success condition rep getJobEntryAttributeString id jobentry success condition add date rep getJobEntryAttributeBoolean id jobentry add date add time rep getJobEntryAttributeBoolean id jobentry add time SpecifyFormat rep getJobEntryAttributeBoolean id jobentry SpecifyFormat date time format rep getJobEntryAttributeString id jobentry date time format AddDateBeforeExtension rep getJobEntryAttributeBoolean id jobentry AddDateBeforeExtension DoNotKeepFolderStructure rep getJobEntryAttributeBoolean id jobentry DoNotKeepFolderStructure iffileexists rep getJobEntryAttributeString id jobentry iffileexists destinationFolder rep getJobEntryAttributeString id jobentry destinationFolder ifmovedfileexists rep getJobEntryAttributeString id jobentry ifmovedfileexists moved date time format rep getJobEntryAttributeString id jobentry moved date time format AddMovedDateBeforeExtension rep getJobEntryAttributeBoolean id jobentry AddMovedDateBeforeExtension create move to folder rep getJobEntryAttributeBoolean id jobentry create move to folder add moved date rep getJobEntryAttributeBoolean id jobentry add moved date add moved time rep getJobEntryAttributeBoolean id jobentry add moved time SpecifyMoveFormat rep getJobEntryAttributeBoolean id jobentry SpecifyMoveFormat How many arguments int argnr rep countNrJobEntryAttributes id jobentry source filefolder source filefolder new String argnr destination filefolder new String argnr wildcard new String argnr Read them all for int a 0 a argnr a source filefolder a rep getJobEntryAttributeString id jobentry a source filefolder destination filefolder a rep getJobEntryAttributeString id jobentry a destination filefolder wildcard a rep getJobEntryAttributeString id jobentry a wildcard catch KettleException dbe throw new KettleException BaseMessages getString PKG JobSymmetricEncryptFiles Error Exception UnableLoadRep id jobentry dbe public void saveRep Repository rep ObjectId id job throws KettleException try rep saveJobEntryAttribute id job getObjectId encryptionType encryptionType rep saveJobEntryAttribute id job getObjectId arg from previous arg from previous rep saveJobEntryAttribute id job getObjectId include subfolders include subfolders rep saveJobEntryAttribute id job getObjectId add result filesname add result filesname rep saveJobEntryAttribute id job getObjectId destination is a file destination is a file rep saveJobEntryAttribute id job getObjectId create destination folder create destination folder rep saveJobEntryAttribute id job getObjectId nr errors less than nr errors less than rep saveJobEntryAttribute id job getObjectId success condition success condition rep saveJobEntryAttribute id job getObjectId add date add date rep saveJobEntryAttribute id job getObjectId add time add time rep saveJobEntryAttribute id job getObjectId SpecifyFormat SpecifyFormat rep saveJobEntryAttribute id job getObjectId date time format date time format rep saveJobEntryAttribute id job getObjectId AddDateBeforeExtension AddDateBeforeExtension rep saveJobEntryAttribute id job getObjectId DoNotKeepFolderStructure DoNotKeepFolderStructure rep saveJobEntryAttribute id job getObjectId iffileexists iffileexists rep saveJobEntryAttribute id job getObjectId destinationFolder destinationFolder rep saveJobEntryAttribute id job getObjectId ifmovedfileexists ifmovedfileexists rep saveJobEntryAttribute id job getObjectId moved date time format moved date time format rep saveJobEntryAttribute id job getObjectId add moved date add moved date rep saveJobEntryAttribute id job getObjectId add moved time add moved time rep saveJobEntryAttribute id job getObjectId SpecifyMoveFormat SpecifyMoveFormat rep saveJobEntryAttribute id job getObjectId create move to folder create move to folder rep saveJobEntryAttribute id job getObjectId AddMovedDateBeforeExtension AddMovedDateBeforeExtension save the arguments if source filefolder null for int i 0 i source filefolder length i rep saveJobEntryAttribute id job getObjectId i source filefolder source filefolder i rep saveJobEntryAttribute id job getObjectId i destination filefolder destination filefolder i rep saveJobEntryAttribute id job getObjectId i wildcard wildcard i catch KettleDatabaseException dbe throw new KettleException BaseMessages getString PKG JobSymmetricEncryptFiles Error Exception UnableSaveRep id job dbe public Result execute Result previousResult int nr Result result previousResult List rows result getRows RowMetaAndData resultRow null result setNrErrors 1 result setResult false try NrErrors 0 NrSuccess 0 successConditionBroken false successConditionBrokenExit false limitFiles Const toInt environmentSubstitute getNrErrorsLessThan 10 if include subfolders if isDetailed logDetailed BaseMessages getString PKG JobSymmetricEncryptFiles Log IncludeSubFoldersOn String MoveToFolder environmentSubstitute destinationFolder Get source and destination files also wildcard String vsourcefilefolder source filefolder String vdestinationfilefolder destination filefolder String vwildcard wildcard if iffileexists equals move file if Const isEmpty MoveToFolder logError toString BaseMessages getString PKG JobSymmetricEncryptFiles Log Error MoveToFolderMissing return result FileObject folder null try folder KettleVFS getFileObject MoveToFolder if folder exists if isDetailed logDetailed BaseMessages getString PKG JobSymmetricEncryptFiles Log Error FolderMissing MoveToFolder if create move to folder folder createFolder else logError BaseMessages getString PKG JobSymmetricEncryptFiles Log Error FolderMissing MoveToFolder return result if folder getType equals FileType FOLDER logError BaseMessages getString PKG JobSymmetricEncryptFiles Log Error NotFolder MoveToFolder return result catch Exception e logError BaseMessages getString PKG JobSymmetricEncryptFiles Log Error GettingMoveToFolder MoveToFolder e getMessage return result finally if folder null try folder close catch IOException ex if encryptionType equalsIgnoreCase this Encryption Type DES encryptor new DES else encryptor new AES if arg from previous if isDetailed logDetailed BaseMessages getString PKG JobSymmetricEncryptFiles Log ArgFromPrevious Found rows null rows size 0 if arg from previous iteration row

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论