文档库 最新最全的文档下载
当前位置:文档库 › Pantaho_Kettle插件开发

Pantaho_Kettle插件开发

Pantaho_Kettle插件开发
Pantaho_Kettle插件开发

Pantaho Kettle 插件开发

2012 年03 月

文档修改记录

目录

1Kettle (3)

1.1Kettle介绍 (3)

1.2Kettle组件 (3)

1.3Kettle插件 (3)

2 Kettle转换步骤插件开发 (4)

2.1 Kettle转换步骤插件开发概述 (4)

2.1.1 Kettle转换步骤插件至少需要实现四个接口 (4)

2.1.2 Kettle转换步骤插件各个类命名推荐规则 (4)

2.2 Kettle转换步骤插件开发例子 (5)

2.2.1 Kettle转换步骤插件初步开发 (5)

2.2.2 Kettle转换步骤插件功能完善 (7)

2.3 Kettle转换步骤插件部署 (15)

1Kettle

1.1Kettle 介绍

Kettle 也叫PDI,在2006 年kettle 加入了开源的BI 组织Pantaho,正式命名为PDI(Pantaho Data Integeration),而kettle 是“Kettle E.T.T.L.Envirnoment”的缩写。

kettle 是一款国外开源的ETL(Extract Transform Load)工具,纯java 编写,可以在Window、Linux、Unix 上运行,绿色无需安装,被设计用来抽取、转换、装入和加载数据,可以形象的

理解为将各种数据放入到一个壶里面然后以一种指定的格式流出来。

Kettle 中有两种脚本文件,transformation 和job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。

1.2Kettle 组件

1. Spoon:一个图形用户界面,用来运行transformation(转换)和job(任务),其中

transformation 是用Pan 工具来运行,任务是用Kitchen 来运行。

2. Pan:一个数据转换引擎,主要用来执行数据源读取,操作和写入数据等等功能。

3. Kitchen:一个运行任务(利用XML 或数据资源库描述)的工具。

1.3Kettle 插件

Kettle 本身提供了很多组件,多个组件一起构成一个transformation(转换),多个转换

一起构成一个job(任务)。kettle 的组件已经非常丰富,在组件不满足需求时可以在kettle

上面开发自己的组件,kettle 支持的组件开发如下:

注意:本文档接下来的内容只讲解“转换步骤插件”开发

2Kettle 转换步骤插件开发

2.1 Kettle 转换步骤插件开发概述

2.1.1Kettle 转换步骤插件至少需要实现四个接口

org.pentaho.di.trans.step.StepMetaInterface:元数据的处理,加载xml,校验,主要是对一个步骤的定义的基本数据。

org.pentaho.di.trans.step. StepDataInterface:数据处理涉及的具体数据,以及对数据的状态的设置和回收。

org.pentaho.di.trans.step. StepInterface:负责数据处理,转换和流转。这里面主要由processRow()方法来处理。

org.pentaho.di.trans.step. StepDialogInterface:提供GUI/dialog,编辑步骤的元数据。对于以上四个接口的实现,都有相应的基类,具体的步骤只需要继承基类和实现相应的

接口即可。

2.1.2Kettle 转换步骤插件各个类命名推荐规则

stepInterface 的实现类以插件的功能相关命名:*.java

stepDataInterface 的实现类:*Data.java

stepMetaInterface 实现类:*Meta.java

StepDialogInterface 的实现类:*Dialog.java

2.2 Kettle 转换步骤插件开发例子

本例子主要实现功能:将输入的HTTP URL 列表供后续步骤使用。

2.2.1 K ettle 转换步骤插件初步开发

1.在“src-plugins”下创建文件夹“kettle-urlContentValidate-plugin”,然后依次创建上面四个接口类的实现,如下图:

2.上图中四个类实现的接口在kettle 中已经有实现类,在实际开发中我们继承就可以了,简单截图如下:

3.在“plugins”子文件夹“step”下建立文件夹“UrlContentValidatePlugin”,增加的配置文件截图如下:

4.修改“plugin.xml”配置内容如下

5.将创建的源代码加入“java build path”

6.到目前为止一个初步的转换步骤插件开发已经完成,编译运行kettle(kettle 入口为Spoon.java),可以在kettle 中看到如下界面:

2.2.2 K ettle 转换步骤插件功能完善

2.2.2.1K ettle 转换步骤插件入口UrlContentValidatePluginMeta

2.2.2.1.1入口UrlContentValidatePluginMeta 作用和主要方法说明

Kettle 转换步骤插件入口UrlContentValidatePluginMeta 本身提供基础数据的配置,同时负责调用UrlContentValidatePluginDialog 展现界面,负责调用UrlContentValidatePluginData 保存中间处理数据,负责调用UrlContentValidatePlugin 在运行的过程中遍历行级数据。

在代码开发过程中,未发现saveRep(…)和readRep(…)以及check方法作用

2.2.2.1.2入口调用UrlContentValidatePluginDialog

1. 每一个开发的转换kettle 都会为之添加一个代理,让我们看看代理的代码(以下代码为

kettle 源代码,在这里拿出来主要是为了讲解调用原理,无需手动添加)

从上面的代码我们看到代理会通过StepMetaInterface 实现类中的getDialogClassName() 找到SWT 界面类名称UrlContentValidatePluginDialog,然后反射SWT 界面类中的固定方法public StepDialogInterface getDialog(Shell shell, StepMetaInterface meta,TransMeta transMeta, String name)

2.接着看看org.pentaho.di.trans.stepBaseStepMeta 中的getDialogClassName()(以下代码为

kettle 源代码,在这里拿出来主要是为了讲解调用原理,无需手动添加)

3.本例中符合包命名格式,直接在在UrlContentValidatePluginMeta 中添加如下内容(以下

代码需要我们认为添加)

2.2.2.1.3入口调用UrlContentValidatePluginData

重写UrlContentValidatePluginMeta 中getStepData()

2.2.2.1.4入口调用UrlContentValidatePlugin

重写UrlContentValidatePluginMeta 中getStep(StepMeta stepMeta,StepDataInterface stepDataInterface, int copyNr,TransMeta transMeta, Trans trans)

2.2.2.2K ettle 转换步骤插件界面UrlContentValidatePluginDialog 2.2.2.2.1 界面开发

开发界面主要是在UrlContentValidatePluginDialog 里面open()方法中填充代码,简单截图如下:

2.2.2.2.2界面数据传入到UrlContentValidatePluginMeta

1.在UrlContentValidatePluginMeta 中添加接收界面数据的变量(变量类型根据具体的

需求而定,可以为简单类型、集合类型和自定义类型)

java.util.List basicDataList = n ull;

2.在UrlContentValidatePluginDialog 中添加接收UrlContentValidatePluginMeta 的变量,

并修改UrlContentValidatePluginDialog 的构造方法如下:

//该构造放放已经在入口UrlContentValidatePluginMeta类中关联,入口

//UrlContentValidatePluginMeta会在调用UrlContentValidatePluginDialog的时候将自

//己传入到UrlContentValidatePluginDialog中,这里只需要在

//UrlContentValidatePluginDialog定义变量接收

private UrlContentValidatePluginMeta input;

public UrlContentValidatePluginDialog(Shell parent, BaseStepMeta baseStepMeta,

TransMeta transMeta, String stepname) {

this.input = ((UrlContentValidatePluginMeta) baseStepMeta);

}

3. 在点击SWT 界面的“确定”按钮事件监听中添加以下代码处理将界面数据传入

UrlContentValidatePluginMeta 类中,如下图:

2.2.2.3Kettle 转换步骤插件基础数据保存和解析

2.2.2.

3.1 Kettle 转换步骤插件基础数据XML 格式保存和解析

1.基础数据(也即上面页面数据java.util.List basicDataList)保存到XML,重写

UrlContentValidatePluginMeta 中getXML()

2.XML 中解析基础数据(也即上面页面数据java.util.List basicDataList),重写

UrlContentValidatePluginMeta 中loadXML(Node stepnode, List databases,Map counters)

super(parent, baseStepMeta, transMeta, stepname);

3.基础数据(也即上面页面数据java.util.List basicDataList)存储为XML 数据截取图

片如下

2.2.2.

3.2 Kettle 转换步骤插件基础数据资源库格式保存和解析

1.基础数据(也即上面页面数据java.util.List basicDataList)保存到资源库,重写

UrlContentValidatePluginMeta 中saveRep(Repository rep, ObjectId id_transformation,ObjectId id_step)

2.资源库中解析基础数据(也即上面页面数据java.util.List basicDataList),重写

UrlContentValidatePluginMeta 中readRep(Repository rep, ObjectId id_step,List databases, Map counters)

3.基础数据(也即上面页面数据java.util.List basicDataList)保存到资源库截取图

片如下

2.2.2.4Kettle 转换步骤插件供给下转换步骤的元数据

1.重写UrlContentValidatePluginMeta 中getFields(RowMetaInterface inputRowMeta, String name, RowMetaInterface[] info, StepMeta nextStep, VariableSpace space),元数据主要让下一个转换步骤知晓上个步骤将传给什么样的数据(数据的类型,数据的关键字),具体的数据内容将会通过UrlContentValidatePlugin 的processRow(StepMetaInterface meta, StepDataInterface data)传给下一步骤,下一步骤正是通过元数据自动获取数据

2.下一转换步骤获取元数据截图如下:

2.2.2.5Kettle 转换步骤插件运行过程中遍历行级数据

注意:UrlContentValidatePlugin 的processRow(StepMetaInterface meta, StepDataInterface data)主要是将界面基础数据加工处理成中间数据,然后把中间数据按

照行级遍历逐条传给下一步骤使用和处理

重写UrlContentValidatePlugin 中的processRow(StepMetaInterface smi, StepDataInterface sdi),具体内容详见代码,主要逻辑截图说明如下:

2.3 Kettle 转换步骤插件部署

1.将文件夹“plugins”下“steps”下配置信息文件夹“UrlContentValidatePlugin”拷贝出来

2.打包插件jar

3.将打包的“k ettle-urlContentValidate-plugin.jar ”拷贝到 1 中的文件夹下,并修改“plugin.xml”依赖的jar,截图如下:

4.将文件夹“UrlContentValidatePlugin ”拷贝的kettle 工具文件夹“kettle 根目录

\plugins\steps\”下面

5.启动kettle 更目录Spoon.bat,简单创建kettle 并测试

3Kettle 插件开发过程总结

3.1 资料共享

官网地址:

https://www.wendangku.net/doc/9913660398.html,/projects/data-integration/

源码下载地址:

https://https://www.wendangku.net/doc/9913660398.html,/pentaho/pentaho-kettle

3.2 概述

本次kettle学习插件开发以kettle_5.0.1版本为例,开发socket对接MQ产品插件

重新实现socket部分的逻辑代码。以SocketReader为例

项目源码地址:

3.3 代码分析

3.3.1 流程启动

当启动这个转换的时候,每一个插件节点,都会启动一个线程,循环调用processRow(..)方法,

下一个插件节点会根据循环信息,进行等待状态(此逻辑部分代码,跟踪未能明白)

直到获取到r的值,进入方法体。

参考代码:

/**

* @author Bian_Shaolei

* 插件执行过程中的操作方法

* 此方法会在该插件线程内,循环调用

*/

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi)

throws KettleException

{

meta = (DummyPluginMeta)smi;

data = (DummyPluginData)sdi;

Object[] r=getRow(); //从上一个插件中过去输出的数据值

if (r==null) // no more input to be expected...

{

setOutputDone();//设置执行插件的完成方法

return false;

}

if (first)//是否首次运行,会加载初始化的东西

{

first = false;//根据记过类型,判断是否首次调用

data.outputRowMeta = (RowMetaInterface)getInputRowMeta().clone();//从上一

个插件中获取插件的输出meta,依赖方法getRow();

meta.getFields(data.outputRowMeta, getStepname(), null, null, this); }

//根据插件功能进行逻辑操作,此处,只是进行结果集的变化

/**修改域-----开始**/

Object extraValue = meta.getValue().getValueData();

Object[] outputRow = RowDataUtil.addValueData(r, data.outputRowMeta.size()-1, extraValue);

/**修改域-----结束**/

putRow(data.outputRowMeta, outputRow); //将结果集放置到上下文中,供下

一个节点模块调用

if (checkFeedback(linesRead)) logBasic("Linenr "+linesRead); // 日志操

return true; }

jenkins简单使用

Jenkins简单使用 目录 关于项目创建 (2) 关于自动部署到容器 (5) 利用Jenkins提供的deploy plugin自动部署 (5) 利用tomcat-maven-plugin自动部署 (6) 关于把WEB项目打成jar包自动部署 (8)

关于项目创建 点击首页的“创建一个新任务”。 输入项目名称,并选择Maven项目(因我们的项目都是Maven项目,所以此处选此项) 点击“OK”,会进入配置页面。 下面只讲到了部分的配置,如果没有特殊需求其它配置保持默认即可。 首先是“丢弃旧的构建”选项,如若勾选此选线可以看到如图界面。

“丢弃旧的构建”主要是用来配置构建历史保存几个版本,或者说是保存多少时间。 “源码管理”选项中配置对应的SCM,我们用的是SVN,所以此处选择“Subversion”,并填入仓库的Url,如图: 如果没有按照“关于配置”配置Maven相关参数,配置页面中的build项处会显示如图错误: “构建触发器”选项用来配置什么时候会进行构建项目。 Build whenever a SNAPSHOT dependency is built:当此项目所依赖的项目在jenkins中被构建Build after other projects are built:在某个项目被构建后,构建此项目 Build periodically:按照指定的时间间隔进行自动构建,不管代码有没有变更。 Poll SCM:按照指定的时间间隔对SCM进行检测,如果代码库有更新则拉取后进行构建。

如图: “pre steps”:build命令之前执行的操作。可以写脚本。 “build”:build命令相关配置。Root POM:项目中pom.xml所在的路径,此路径是相对于workspace的相对路径。Goals and options:可以填写,build命令后跟的参数,如:clean install (先clean在install),clean install -Dmaven.test.skip=true(清除以前的包,重新打包,并跳过测试) “post steps”:build命令之后执行的操作。同pre steps。同样可以写脚本。 注:脚本中可以引用的变量,参见官方文档: https://https://www.wendangku.net/doc/9913660398.html,/display/JENKINS/Building+a+software+project 最后点击“保存”。 可以点击如图按钮测试一下自己的配置: 构建完成后,可以点击如图红框内的蓝色小按钮查看控制台输出:

OpenFire插件开发基础教程

O p e n F i r e插件开发基础教程 Openfire是一款优秀的XMPP服务器,而且是开放源码的.大家可以根据自己的需求进行二次开发。二次开发主要有两种方式:1.修改源代码,2开发openfire插件。从可扩展性上考虑,自然是开发插件是上策,只有插件无法实现时候才会选择修改源代码。 下面就个人经验,说明一下如何开发openfire插件 一、环境基础 要有一个配置好的openfire开发环境,这个网络上有比较详细的教程了。比如《》和《行》,这时候ant应该是可以正常运行的,先执行openfire 【default】,就生成了openfire的目标代码,再执行plugins,就个生成所以系统自带的插件。 二、目录拷贝 打开workspace\openfire_src\src\plugins目录,找一个要修改的插件,我选的是subscription,拷贝生成“subscriptionUF”。打开src目录,里面有两个文件夹 ,java就是我们要改的源码,而web里面是修改这个插件所要用的web 配置页面,目前用不到,直接删除。 三、修改plugin.xml 这个一个xml文件,里面的内容就按照自己的样子更改吧。最关键是确定,插件所在的类名,既然没有web文件夹了adminconsole也全部注释掉吧. 四、修改类和类目录 修改src/java里面的目录层次,Class和src/java中的路径必须一致。 五、引入openfire项目 右击openfire项目,选择New->Source Folder,在Floder name中选择到刚刚新增的插件目录,注意要选到src/java这一层 六、修改类文件 SubscriptionPluginUF是完全copy SubscriptionPlugin的,因此有两个类名不符的error修改一下. 至此,整个openfire已经把我们新加的SubscriptionPluginUF包含在他的plugins中了,通过控制台也能看到一个仿冒的SubscriptionPluginUF插件 七、单独编译插件 如果每次都运行plugins,生成所有插件的同时生成我们修改的插件,固然可行,就是慢了一点,插件有什么错误也要找半天。Openfire还很贴心的给了只生成我们想要的插件的ant 指令— plugin,我们要做的工作就是告诉ant,我们的目标插件名是 SubscriptionPluginUF。 增加一个plugin的property,这样只需要点击plugin,就能生成我们的插件了。P.S.openfire插件的目录和文件组织 请参考/documentation/docs/plugin-dev-guide.html

使用JIRA和Jenkins进行项目管理

使用JIRA和Jenkins进行项目管理 (仅供参考) 1使用JIRA进行项目跟踪管理 1.1JIRA项目管理流程 1.1.1概述 项目的软件开发流程主要围绕实现一个个业务功能需求和非功能需求的需求分析、设计、开发、测试、发布验收,而参与人员最多的开发和测试环节是流程最容易出问题的环节,为有效使用JIRA进行项目管理,我们设计了以需求为主导的JIRA表单和流程(如下图)。 对应于软件过程的管理流程,本项目JIRA对应设置了以下的IssueType(问题类型)和3大管理流程: 【说明】 【需求单】:在需求分析、概要设计、详细设计阶段,将产生对一个需求的具体描述和实现设计描述交付到开发阶段,在JIRA中,体现为一份 需求单,这些交付件全部作为需求单的附件,需求单的来源包括: -需求阶段的原始需求,以一个业务功能为一份需求,通常在一周左右可以开发完成,例如“用户新增和查询功能”; -系统优化和变更:如果一些变更无法对应一份原始需求,需要创建一份新的需求单

?【子任务单】在开发阶段,一份需求往往需要三四天甚至长得多的时间 才能完成,开发完成后也存在不断的优化和改进,因此,围绕需求在JIRA 上设置了以下的管理跟踪对象子任务单(SubIssueType) -开发任务单: -程序员拿到需求后,组长应该协调开发人员将需求分解为开发任务,在JIRA上创建任务单; -设计问题单: -程序员拿到需求中的设计进行评估时,如果发现设计文档或者需求有bug,应该记录在案以便协调设计小组完善,在JIRA上创建设计 问题单; -变更单 -但设计和需求人员需要对已经提交的需求和设计提交变更时,例如增加一个字段、变更原型样式、变更接口方法,均需要提交变更单; -评审BUG单 -主要是开发组长或者结对开发程序员在评审BUG时,将评审的BUG 记录为评审BUG; -测试BUG单 -主要针对前期开发阶段的冒烟测试,测试人员对已经实现的功能进行测试,保证流程能够跑得通,如果发现BUG则创建测试BUG单; ?【测试问题单】 -主要针对无法对应到一份需求产生的BUG ?流程设置说明 -根据参与者、小组分工,设置以下流程 -需求跟踪流程 -参与人员包括需求分析员、设计者、开发组长、程序员、测试组长、测试员、用户参与,只与需求单关联,但目前其他用户参与的流程 主要由开发组长完成。 -任务跟踪流程 -主要是开发组长和程序员两级人员参与,与开发任务单、设计问题单、变更单、评审BUG单,便于开发小组进行状态监控,部分单尽 管涉及到设计人员,但为降低流程协调工作量,均由开发人员在面 对面解决后对流程进行操作 -BUG跟踪流程 -主要是测试人员和开发组间的流程跟踪。 详细的流程图如下: 1.1.2需求跟踪流程 【流程重点说明】 -开发人员必须在接受到任务后点击“开始处理”,以便跟踪哪些任务正在处理中;任务完成后点击“完成”; -小组长在代码评审后,使用JIRA的批量流程操作功能,将完成开发的进行发布,在JIRA上点击“发布测试”; -测试部分分为两个环节:冒烟测试和集成测试;

基于XMPP协议和Openfire的即时通信系统的开发

万方数据

万方数据

万方数据

基于XMPP协议和Openfire的即时通信系统的开发 作者:潘凤, 王华军, 苗放, 李刚 作者单位:潘凤(成都理工大学信息工程学院,四川,成都,610059;运城学院计算机科学与技术系), 王华军,苗放(成都理工大学信息工程学院,四川,成都,610059), 李刚(华商世纪(北京)科贸发 展股份有限公司) 刊名: 计算机时代 英文刊名:COMPUTER ERA 年,卷(期):2008,(3) 被引用次数:1次 参考文献(5条) 1.许鼎即时通信四种协议简述 2003 2.庞怡即时通讯工具现状及发展趋势分析[期刊论文]-科技情报开发与经济 2006 3.Jason Kichten.李军用基于XML的即时消息开发Jabber 2003 4.Peter S A XMPP Instant Messaging and Presenee 2004 5.Jabber官方组织"Jabber::Protocol" 相似文献(6条) 1.学位论文付莎基于XMPP协议企业级IM的研究与实现2009 近年来即时通信技术的飞速发展使即时通信工具的应用更为广泛,给个人的网络生活、企业的日常办公都带来了极大的便利性与高效性。XMPP( eXtensible Messaging and Presence Protocol)可扩展消息与出席协议技术便是其中较为活跃的一种即时通信技术。由于即时通信工具在企业中的应用给企业的运营管理带来诸多便利,因而在企业中的应用越来越广泛,具有很高的研究与应用价值。 目前常用的即时通信软件的协议种类繁多,本文在研究比较了当前流行的几种协议之后,选用了基于可扩展标记语言XML的XMPP协议,由于其开放性、扩展性、安全性良好等诸多优势,并可以实现与使用其他协议的即时通信软件的互联互通,且发展前景良好,因而对于开发一款企业级即时通信系统有着十分明显的优势。本文从对XMPP协议的介绍与分析入手,首先简要介绍了XMPP协议及其发展,XMPP协议的特点,然后又深入介绍了XMPP协议的内容:XMPP协议的系统构架、地址空间、数据的传输结构、以及通信链路的建立过程等。在对协议进行了深入研究的基础上,根据本文的研究目标,针对企业级即时通信系统的特点进行需求分析,并设计与实现。在实现了即时通信的消息收发、名册管理、出席信息的交换等基本功能的基础上,着重研究了用户的管理控制问题、权限划分、可追溯性管理及功能性、扩展性的要求,实现了会议功能、文件传输,以及广播功能,模拟了与非XMPP系统进行交互的过程。在开源软件系统Openfire及Gloox库的支持基础上,最终设计并实现了一套完善的面向企业级的即时通信系统。 最后对系统进行了测试,完成了测试平台的搭建工作,建立相应的测试用例。系统实验测试的结果表明:系统功能完善、稳定,界面友好简洁,满足企业级即时通信系统的需求。 2.学位论文招俏春基于XMPP协议的即时通讯系统的研究2008 随着互联网的普及和发展,即时通讯已经成为人们交流的重要手段。目前有许多的IM系统,如AOL IM、Yakoo IM和MSN IM,它们使用了不同的技术,而且它们互不兼容。XMPP/Jabber的提出打破了传统即时通信系统之间无法实现互联互通的局面。XMPP对于即时通信是一个开放的基于xml的数据模型和协议,采用了分布式的网络体系机构,模块化可扩展的系统架构,使得扩展它的功能变得简单。 利用Jabber/XMPP的体系结构,构建了一个基于XMPP协议的即时通信系统,包括即时通信系统的客户端和服务器。其中服务器采用开源的Jabber服务器Openfire,客户端基于XMPP核心及扩展协议利用Google Talk的开发包libjingle进行研究开发。设计了一个与Openfire互联通信的客户端系统,实现与客户音的文字、语音、视频、文件及实时数据通信功能;研究了XMPP协议及其在协同通讯领域的应用。 介绍了即时通讯的现状、发展趋势,分析了客户端软件的开发环境和所要用到的几个相关技术。在此基础上设计出基于)(MPP协议的能与Jabber服务器Openfire实现互通的客户端软件的总体架构和基本模型,并对即时通讯客户端的具体设计进行了全方位的阐述:在XMPP流通信基础上的文字通信及扩展的群组通讯;基于JEP扩展协议Jingle协议完善了系统功能,进行了客户问的P2P(Peer-to-Peer,点对点)连接扩展,从而实现了可靠的实时语音视频、文件、实时数据等P2P通信。另外还对客户端设计中的几个关键问题,网络安全机制和带NAT的防火墙穿越等方面的进行了较为深入的研究,并论述了本系统所采用的方案。最后总结了本设计的工作与成果,并提出下一阶段的研究设想。 3.期刊论文路璐.王华军.苗放.李刚.Lu Lu.Wang Huajun.Miao Fang.Li Gang基于Jingle协议及Opnefire的语音通信原理与实现-办公自动化(综合版)2007(12) 本文对Jingle协议及Openfire开源项目进行研究和分析,在此基础上进行点对点语音通信原理的分析和实现,并指出该通信方式的优点和不足. 4.学位论文罗伟基于Android平台的即时通讯系统的研究与实现2009 随着移动通信与Internet的飞速发展及相互融合,GPRS使无线网络高速接入到Internet成为现实,移动用户从而可以享受到Internet提供的服务。即时通讯是基于互联网协议的应用程序,它能够使应用不同设备的用户进行通信,随着手机的不断普及以及性能的不断提升,为即时通讯系统从传统的PC机到手机的移植提高了很好的条件。而且在中国庞大的手机用户中,通过手机使用即时通讯软件的用户越来越多。当前的手机操作系统都过于封闭 ,各大即时通讯软件采用的通讯协议也不统一,而Android是基于Linux的开源的手机操作系统平台,XMPP是基于XML的开源的即时通讯协议,因此基于Android平台和XMPP协议开发即时通讯系统具有很好的应用前景。 本文给出了系统的研究背景,对当前手机操作系统、即时通讯软件和即时通讯协议的发展现状做了简单的介绍。进而详细的分析了Android的特征、架构以及Android应用的构成和工作机制,并对Android与其他手机操作系统进行了比较,说明了Android在手机操作系统中的优势。提出了系统的架构 ,以及系统服务器端和客户端的解决方案,采用开源的Openfire作为系统的即时通讯平台,实现移动客户端之间的即时通讯。对系统客户端的组成模块进行了介绍,对即时通讯协议XMPP以及系统的通讯机制进行了分析。针对当前通信数据的安全问题并结合本系统的特点,对IDEA数据加密算法进行了改进,提出了A—IDEA算法的设计,并对两种算法从几个方面进行了对比分析,对于图片文件的加密,采用A—IDEA与RSA算法相结合的方案。对服务器的运行流程进行了分析并对系统客户端进行了详细的设计与实现,对系统进行了部署和测试。 5.期刊论文剧忻.苗放.JU Xin.MIAO Fang基于MINA开发高性能网络应用程序——以实现XMPP协议

Jenkins+Jmeter环境搭建操作手册

Jenkins+Jmeter环境搭建操作手册 一、环境&工具 Jmeter:本地的Jmeter 版本最好与Jenkins上的是一致的 查看Jenkins服务器上的Jmeter版本: 上传脚本工具:SVN 或者Git 。这2中工具作用均用来实现将你本地的脚本上传至Jenkins 服务器。(Jenkins服务器是不会运行你本地的脚本~~) 二、账号准备 Jenkins 账号:自己在Jenkins上注册就行啦 SVN / Git 账号:可在项目組内申请 三、环境搭建 3.1 测试脚本的上传 本文拿SVN举例。 S1、SVN在本地创建存储目录(不做详细介绍),将要自动运行的脚本文件夹放置该目录下

S3、提交:选中文件,右击,选择”Commit",显示绿色的勾后,及上传成功

3.2 Jenkins的项目构建环境配置S1 . 登录Jenkins S3. 创建任务(自动化任务)

S5. 设置源码管理路径

S7. 构建环境:每次构建前删除上一次运行的workspace

cd /usr/locallogs/jenkins/workspace/dhp_test/dhp_test1 JENKINS进入到路径中(存放sh脚本的路径) chmod 777 BookingcomRes.sh修改文件执行权限 bash BookingcomRes.sh运行文件 /usr/local/bin/sendmail.sh "test report" "yanan.fan@https://www.wendangku.net/doc/9913660398.html," "EMAIL CONTENT" /usr/locallogs/jenkins/workspace/dhp_test/dhp_test1/report/Test*.csv 将运行结果写到CSV文件中并通过邮件的方式发送到我的邮箱

spark+openfire 源代码部署

spark+openfire二次开发(一) 文章分类:Java编程 1.准备工作: 到官网上下载Openfire 3.6.4,并通过svn下载openfire、Spark和SparkWeb 的源代码 官网地址如下: https://www.wendangku.net/doc/9913660398.html,/downloads/index.jsp 注意官网上最新的Spark版本是2.5.8,其jdk环境最好使用1.6的版本。 2.环境搭建——spark源码安装配置 双击openfire_3_6_4.exe进行openfire的安装,安装过程很简单,不介绍了。 本例的开发环境是基于Eclipse的。 1)选择File——New——Project——Java Project。 输入项目工程名spark Contents中选择"Create project from existiing source",然后把spark 文件所在的文件夹加进去..

点击Finish。 2)生成Spark: 点击Window::Show View::Ant 右击Ant面板,选择Add Buildfiles 展开spark::build文件夹,选择build.xml,点击"OK" 在Ant面板,展开Spark,双击"release",等一段时间,会提示"Build Successful"。 3)运行Spark: 点击Run::Open Debug Dialog...,出现"Run"窗口 选择"Java Application",右键点击"New"按钮. 在"Main"标签页,将New_configuration换成Spark. 点击Project::Browse按钮,选择Spark,再点OK.

一步步搭建jenkins持续集成平台

一步步搭建jenkins持续集成平台 持续集成作为最先进的项目实践之一,逐渐在受到天朝软件公司的重视,笔者从事近1年半时间的相关工作,也无法游刃有余,用了很久jenkins了,也没有做个入门介绍给大家,惭愧,最近在迁移,顺便重新搞下,记录以飨读者. 【持续集成相关工具集】: CI-Server(Jenkins/Hudson.....) 代码管理工具(SVN/git...) java框架(maven) 覆盖率工具(c++:gcov java:maven cobertura插件) 静态扫描插件(jenkins插件) 覆盖率报表合并工具 jenkins二次开发api apache +php +codeiginter 配置 mysql +python 用来管理数据库 python-dev 下载链接 ........... 笔者将来会专门在持续集成板块介绍相关的工具集合 【安装Jenkins配置启动】: apache-tomcat-6.0.37-src.tar.gz + jenkins.1.556.war 自己搜索下吧 tomcat/bin下全部chmod +x ./* 把jenkins.war 拷贝到tomcat/webapps下 启动tomcat/bin 下startup.sh 查看8080端口是否启动 浏览吧:http://192.168.1.xxx:8080/jenkins 若想从局域网别的机器访问,则修改tomcatxxx/cong/server.xml Host name="xxx.xxx.xxx.xxx" Engin name="xxx.xxx.xxx.xxx" 同时设置防火墙(局域网其他机器打不开时可以试试) iptables -I INPUT -p tcp --dport 8080 -J ACCEPT iptables -I OUTPUT -p tcp --dport 8080 -J ACCEPT 【jenkins重启】 cd tomcat/bin/ catalina.sh stop kill pid(java) catalina.sh bin 【增加Slave节点】 1.salve初始化帐号(例:主10.129.145.112 新Slave:10.209.23.90) useradd jenkins -m -d /data/home/jenkins #创建jenkins帐号 2.拷贝jenkin主server上的slave.jar包/usr/local/tomcat/webapps/jenkins/WEB-INF/slave.jar 到新slave的/data/home/jenkins/slave.jar 3.配置: 1).系统管理->节点管理->新建节点10.129.145.112:8081/jenkins/computer/new

(完整word版)先电云计算开发服务平台用户手册-XianDian-Paas-v2.1

云计算开发服务平台 用户手册 版本:先电paas-v2.1 发布日期:2017年4月21日 南京第五十五所技术开发有限公司

版本修订说明 修订版本修订时间修订说明 Cloud-paas-v1.2 2014年3月7日云计算开发服务平台用户手册。 Cloud-paas-v1.3 2015年11月8日新增框架说明,增加框架结构图。 Cloud-paas-v1.3.1 2016年1月18日修订GRE网络下的PaaS平台搭建 Cloud-paas-v1.4 2016年4月12日软件包修改mongodb和ActiveMQ安装脚本Cloud-paas-v2.0 2016年12月15日升级Docker作为服务平台底层 Cloud-paas-v2.0.5 2017年3月13日更新国际化 Cloud-paas-v2.1 2017年4月21日Jenkins结合gogs实现持续化集成

目录 1、Docker基础架构与环境说明 (6) 1.1 Docker架构及基本组件 (6) 1.2、系统要求 (10) 1.3、设备说明 (10) 1.3.1、网络说明 (11) 1.3.2、基础环境配置 (11) 2、容器服务管理平台Rancher安装搭建 (12) 2.1、Docker软件包安装配置 (12) 2.2、配置Docker 配置文件 (12) 2.3、启动服务 (12) 2.4、配置镜像仓库 (12) 2.5、镜像、容器服务基本操作 (13) 2.5.1 获取镜像操作 (13) 2.5.2 容器操作 (15) 2.5.3 终止容器 (18) 2.5.4 进入容器 (18) 2.5.5 容器内部操作 (19) 2.5.6 查看容器日志及相关操作 (20) 2.5.7 导出和导入容器 (23) 2.5.8 删除容器 (24) 2.6、下载镜像 (24) 2.6.1 Server节点 (24) 2.6.2 client节点 (24) 2.7、启动容器服务 (24) 3、访问站点服务 (24) 3.1、浏览器访问 (24) 3.2、添加账号 (25) 3.3、添加主机 (26)

OpenFire环境搭建说明文档

OpenFire环境和 插件开发说明文档 1概述 1.1编写目的 本文档旨在为在Windows系统下快速构建Openfire开发环境和集成插件环境进行相关说明。期望读者为Openfire开发人员和Openfire 服务器测试、维护人员。 1.2术语说明 Openfire服务器:基于XMPP(jabber)协议的开源实时协作(RTC)服务器,采用Java语言开发。可快速构建企业级的高效及时通信服务器。 Openfire插件:Openfire的可扩展应用服务模块,单个插件可通过Openfire的后台管理功能进行管理、发布、升级。 2准备资料 2.1运行环境 1.JDK:jdk 1.5以上,建议采用jdk1.6以上版本。版本基于操作 系统x86/x64确定。目前服务器采用x86 版本jdk1.6.0_01。

2.Mysql:Mysql5.0以上,建议采用mysql5.5以上版本。 2.2资源文件 Openfire源文件:Openfire版本【Openfire3.7.1】 3结构说明 3.1项目结构

服务器部分: a)src/java:Openfire服务器源代码 b)src/plugins:Openfire插件源代码 c)build:build.xml Openfire服务器编译打包脚本 d)documentation:安装开发说明文档和javadoc e)resources:国际化资源文件 f)src:源文件其它资源 g)target:编译后的Openfire服务器 h)work:开发环境Openfire工作目录 自定义部分: a)ant:plugin-utils.xml 自定义帮助类编译打包脚本 b)build:build-utf8.xml utf8格式Openfire服务器编译打包脚本 c)plugin-jar:自定义插件存放目录,从target/openfire/plugins/ 下拷贝,主要为提交到SVN服务器 d)src/plugins/rosterservice/src/java:关系服务插件源文件 e)src/plugins/accountservice/src/java:账号服务插件源文件

Jenkins安装部署及操作说明文档

Jenkins部署及操作手册1Jenkins工作原理 2Jenkins安装 2.1软件包/插件

2.2部署 2.2.1J DK安装 下载JDK1.8版本进行安装,安装后进行系统环境变量配置: 2.2.2A NT安装 下载绿色版apache-ant-1.9.6拷贝至安装目录下(如: D:\tools\apache-ant-1.9.6),配置系统环境变量: 2.2.3M aven安装 下载绿色版apache-maven-3.3.9拷贝至安装目录下(如: D:\tools\apache-maven-3.3.9),配置系统环境变量: 2.2.4T omcat安装 下载绿色版Tomcat8拷贝至安装目录(如:D:\tools\tomcat8-jenkins),配置D:\tools\tomcat8-jenkins\conf\server.xml文件,添加URIEncoding="UTF-8"

2.2.5J enkins安装 下载jenins.war包,拷贝至tomat的webapps目录下(如: D:\tools\tomcat8-jenkins\webapps\),配置系统环境变量: (C:\Users\Administrator\.jenkins) ●启动tomcat,启动结束后,打开IE浏览器输入:http://127.0.0.1:8080/jenkins, 提示输入密码进行下一步插件的安装,安装插件有两种方式选择,一种是按它提供的建议方式安装插件,另外一种方式是用户指定选择安装插件。插件安装过程中需要等待较长时间。 ●插件安装:登录Jenkins,在系统管理页面打开插件管理,选择可选插件选项 卡,勾选需要安装的插件。 ●设置用户注册:登录Jenkins,在系统管理页面打开Configure Global Security, 访问控制安全域勾选允许用户注册。

jenkins中文使用手册分解

Jenkins 操作手册 苏州测试部

目录 第 1 章概述 (1) 第 2 章基础篇 (3) 2.1 Jenkins安装 (3) 2.1.1资源下载 (3) 2.1.2运行Jenkins的前提 (3) 2.1.3 Jenkins启动 (3) 2.1.4 Jenkins访问 (4) 2.2 Jenkins基本设置 (8) 2.2.1设置JDK (9) 2.2.2设置ANT (9) 2.2.3配置邮件信息 (10) 2.3 创建任务 (10) 2.4 运行并监控构建作业 (15) 2.4.1主控制面板 (15) 2.4.2手动构建一个任务 (15) 2.4.3任务构建状态 (16) 第 3 章提高篇: (18) 3.1 插件管理: (18) 3.1.1 FindBugs 插件设置 (18) 3.1.2 Ftp插件配置 (20) 3.1.3 Junit插件 (21) 3.1.4通过远程访问触发 (21) 3.1.5 WebLogic.Deployer (21) 3.2 安全篇 (22) 3.3 个性化设置 (23) 第 4 章常见问题 (25) 4.1 edit lock问题 (25) 4.2 IOException: Unable to delete问题 (25) 4.3 not recognized as a valid application type 问题 (26) 第 5 章其它说明 (27) 5.1 CI挑战 (28) 5.2 ANT基本知识 (28)

第 1 章概述 1.1什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile)在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。 持续集成正是针对这一类问题的一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。 持续集成最早由Martin Fowler于10年前已经提出,希望通过持续集成能够实现以下过程: 任何人在任何地点,任何时间可以构建整个项目。 在持续集成构建过程中,每一个单元测试都必须被执行。 在持续集成构建过程中,每一个单元测试都必须通过。 持续集成构建的结果是可以发布的软件包。 当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。 1.2持续集成的核心价值 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量; 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能; 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。 1.3持续集成的原则 业界普遍认同的持续集成的原则包括: 1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有 IBM Rational ClearCase、CVS、Subversion等;

Openfire+Spark+Spark Web安装配置

Openfire+Spark+Spark Web安装配置 一.安装环境 操作系统:Windows XP Prefessional SP2 服务器软件:Openfire 3.4.2 Openfire Enterprise 3.4.2 客户端软件:Spark 2.5.7 Spark Fastpath Webchat 3.4.1 JDK:J2SE 5.0 (1.5.0_03) 二.安装Jabber服务器软件 2.1 软件下载 Jabber官网地址:https://www.wendangku.net/doc/9913660398.html,/ 常用Jabber服务器软件:https://www.wendangku.net/doc/9913660398.html,/software/servers.shtml 本文以Openfire(Wildfire)为服务器,一款基于GPL协议开源软件,支持各种操作系统,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。 下载地址:https://www.wendangku.net/doc/9913660398.html,/downloads/index.jsp#openfire Windows无java环境版本地址: https://www.wendangku.net/doc/9913660398.html,/downloadServlet?filename=openfire/openfire_3_4_ 2.zip 最新版本:Openfire 3.4.2 2.2Windows版本安装 将openfire_3_2_2.zip解压缩到D:\。特别要注意,openfire的全路径中不能有中文字符,最好主机名也是标准点的英文名称。直接运行安装文件, D:\Openfire\bin\openfire.exe

使用Jenkins配置Git+Maven的自动化构建

使用Jenkins配置Git+Maven的自动化构建文/邴越https://www.wendangku.net/doc/9913660398.html,/binyue/ Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。 在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的优势就会凸显出来,可以很好的提高效率,减少很多人工操作。 现在很多公司的Java项目开发都是使用Git或者SVN管理代码,Maven 管理多模块和项目依赖, 所以今天尝试学习如何使用Jenkins搭建Github与Maven下的自动构建和部署。 1.部署Jenkins 官网下载https://www.wendangku.net/doc/9913660398.html,/。目前的最新版本是1.629。 Jenkins的安装十分简单,下载后就是一个jenkins.war的war包,可以直接部署在Tomcat或者其他容器中。 如果不能部署,可以检查Tomcat的配置文件,可以查看server.xml里unpackWARs和autoDeploy是否设置为True。 另外官网还有相关的.deb等的安装,比较繁琐,具体哪种方式部署可以自己选择。 2.安装相关插件 把war文件拷贝到Tomcat的webapps目录, 启动后进入http://SERVER_PATH:8080/jenkins/,可以看到Jenkins已经在运行:

配置Git仓库需要用到Git插件,Jenkins默认没有Git插件,需要手动安装。 点击Manage Jenkins,进入Manage Plugins, 在可用(Avaliable)插件列表下找到Source Code Management一栏, 选择GIT plugin插件,安装之后重启。 其他的插件如Maven等,Jenkins默认安装,不需要手动下载。 3.配置Maven和JDK路径等 选择Configure System,可以配置Maven安装路径等。 如果没有Maven和Git环境,需要另外设置。

Openfire安装配置

一、环境 操作系统:Windows XP SP3 Web服务器:Tomcat 6.0.18.0 Java Version:1.6.0_21 Jvm Version:1.6.0_21-b07 Openfire服务器:Openfire 3.7.0 Openfire Plugin:Fastpath Service 4.2.0 Fastpath Webchat 4.0.0

二、Opernfire环境安装配置 1. Openfire下载 目前最新版为3.7.0 下载地址:https://www.wendangku.net/doc/9913660398.html,/downloads/index.jsp 分为两个版本,一个是包含了JRE的安装版本,另外一个是不包含JRE的版本。也可以分别通过下面两个链接直接下载。 https://www.wendangku.net/doc/9913660398.html,/downloadServlet?filename=openfire/openfire_3_7_0.exe https://www.wendangku.net/doc/9913660398.html,/downloadServlet?filename=openfire/openfire_3_7_0.zip 2. Openfire安装 将下载的openfire_3_7_0.zip解压。Openfire的全路径中不能有中文字符,最好主机名也是标准点的英文名称。 3. 运行Openfire服务器 直接运行服务器文件。安装目录\Openfire\bin\openfire.exe。 出现启动界面

点击“Launch Admin”,或者在浏览器地址栏输入http://127.0.0.1:9000,进入Opernfire 管理控制台。 初次会进入Openfire设置界面,对Openfire进行初始设置。 3. Openfire初始设置 3.1 语言选择:中文(简体)

jenkins使用手册

Jenkins 操作手册

目录 第 1 章概述 (1) 第 2 章基础篇 (2) 2.1 Jenkins安装 (2) 2.1.1资源下载 (2) 2.1.2运行Jenkins的前提 (2) 2.1.3 Jenkins启动 (2) 2.1.4 Jenkins访问 (2) 2.2 Jenkins基本设置 (3) 2.2.1设置JDK (3) 2.2.2设置ANT (3) 2.2.3配置邮件信息 (4) 2.3 创建任务 (4) 2.4 运行并监控构建作业 (7) 2.4.1主控制面板 (7) 2.4.2手动构建一个任务 (7) 2.4.3任务构建状态 (8) 第 3 章提高篇: (10) 3.1 插件管理: (10) 3.1.1 FindBugs 插件设置 (10) 3.1.2 Ftp插件配置 (12) 3.1.3 Junit插件 (12) 3.1.4通过远程访问触发 (12) 3.1.5 WebLogic.Deployer (13) 3.2 安全篇 (14) 3.3 个性化设置 (15)

第 1 章概述 持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。持续集成最早由Martin Fowler于10年前已经提出,希望通过持续集成能够实现以下过程: 任何人在任何地点,任何时间可以构建整个项目。 在持续集成构建过程中,每一个单元测试都必须被执行。 在持续集成构建过程中,每一个单元测试都必须通过。 持续集成构建的结果是可以发布的软件包。 当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。 Jenkins是一个软件界非常流行的开源CI服务器,下面介绍从基础篇、提高篇两个层面进行介绍。

openfire插件开发

作用:初始化时在控制台打印测试消息。 开发环境:winxp/myeclipse6.5/jdk1.5&1.6/mysql5.0/openfire3.6.3 QQ群:28588322 (openfire专题研究小组) 开发步骤: 1. 布署openfire3.6.3源码(请参考openfire3.6.3导入eclipse项目实现方法) 结构如下: 2. src/plugins目录下新建文件夹itvi。并按下图的目录结构新建对应的文件。 plugin.xml文件代码如下:

org.jivesoftware.openfire.plugin.Itvi Itvi Broadcasts messages to users. openfireteam 1.7.0 2/19/2009 https://www.wendangku.net/doc/9913660398.html, 3.6.3 Itvi.java文件代码如下: package org.jivesoftware.openfire.plugin; import org.dom4j.Element; import org.jivesoftware.openfire.IQHandlerInfo; import org.xmpp.packet.*; import org.jivesoftware.openfire.handler.IQHandler; import org.jivesoftware.openfire.auth.UnauthorizedException; /** * 处理客户端发来的IQ,并回送结果IQ * * @author Phoenix * * Mar 14, 2008 4:55:33 PM * * version 0.1 */

Jenkins插件开发手册

Jenkins插件开发 搭建开发环境 为了能开发插件,开发环境需要安装Maven和JDK 6.0以上版本。 1、安装JDK 打开cmd,输入java –version 如下图,说明安装完成。 图1 2、安装Maven 1.下载Maven 如下图: 图2 将安装包解压到任意地址,我的路径是D:\apache-maven-3.0.5 新建环境变量M2_HOME 指向D:\apache-maven-3.0.5 在path添加路径%M2_HOME%\bin 打开cmd 输入mvn –v, 如下图: 图3 安装成功。 给eclipse安装插件m2eclipse。

1、打开eclipse 2、Help-Install New Software出现下图: 图4 3、点击Add 图5 在name输入m2e 在Location输入 4、确定后出现下图: 图6 5、勾选Maven Integration for Eclipse 6、然后一直下一步直到安装完毕 7、检查是否安装成功 (1)点击Help – about eclipse – installation details,看是否存在Maven Integration

for Eclipse(Required),如下图: 图7 (2)再检查eclipse是否可以创建Maven项目了,File-New-Other 图8 到此Maven安装完成了。 3、安装jenkins 下载jenkins 将jenkins.war,拷贝到D:\jenkins下,打开cmd,转到D:\jenkins目录下然后运行java –jar jenkins.war 最后出现jenkins is fully up an running。说明安装成功。 访问

相关文档