引擎中虽然已经有非常丰富的过滤器但有时并不能满足我们所有的需求,这时我们就需要开发属于自己的过滤器,下面就让我们来看看怎么操作吧
开发环境
1.Eclipse(需要含plug-in开发)
2.Rhapsody RDK(需要找厂商)
3.Rhapsody JRE
步骤
配置Eclipse
这里需要的Eclipse需要带有plug-in开发功能,新建项目时有plug-in Project选项就行 如果没有的话建议直接下载 eclipse RCP版本 下载地址
1.把RDK中的JAR(com.orchestral.rhapsody.eclipsewizard.jar) 复制到eclipse中的plugins文件夹中 复制完后记得重启Eclipse
2.配置eclipse 增加Rhapsody的JAVA 环境
注意 这里选择的JRE不受操作系统影响 比如说我这边的开发环境是MAC OS 但是 Rhapsody 的JRE是Windows下的JRE 这是没有影响的(Rhapsody JRE 位置 引擎安装目录下的jre文件夹)
3.设置plug-in 平台
这里选择rhapsody安装的plugins目录
勾选设置 点击finish后 完成设置
新建plug-in 项目
选择Execution Envirionment 我这边选择了 SE1.8 因为我这边JDK是1.8的 官方文档里选了1.6 可能是出的比较早的缘故 如果出现担心版本问题 建议选择低版本
点击下一步后选择Rhapsody的plug-in 如果这一步没有Rhapsody的选项的估计 检查下前面的配置RDK环节 那个JAR是否放对位置 放置后是否重启Eclipse
这一步就是设置Package name了
MANIFEST.MF 文件设置
新建Java类 选择Rhapsody 过滤器的父类
建完后可能会报没有默认构造器 建生成一个就行
这里简单说下几个方法的作用
String[] getPropertyList() 这个方法主要是用来配置过滤器的参数选项 这里需要注意的是 不能返回Null 不然的话会报空指针异常 如果不需要参数设置的话 可以返回一个String[0]
void doConfigure(Configuration config) 用户用户输入完后check-in后进行设置以及错误信息等提示
Message[] doProcessMessage(Message[] messages) 用于进行message信息操作
这里做个消息转大写的功能作为示例 (判断的功能是为了方式有多条信息)
配置 Activator
注解掉原有的新增 刚刚新建的
this.registrations.add(context.registerService(fr, new FilterRegistration("UpperCase", "Upper Case Filter", "Custom", UpperCase.class, null, null), null)); UpperCase : 名字 Upper Case Filter: 过滤器显示的名字 Custom:过滤器分类 这里定一个Custom UpperCase.class: 类
新建ant xml配置文件 (这里需要自己配置ant环境) <project name="MyCustomFilter" default="jar" basedir="."> <property name="build.classes" value="bin"/> <target name="jar"> <jar jarfile="${ant.project.name}.jar" basedir="${build.classes}" manifest="META-INF/MANIFEST.MF"> <fileset dir="."> <include name="OSGI-INF/Service.xml"/> </fileset> </jar> </target> </project>
右击 编译
如果编译成功的话 会在工作目录下生成一个JAR文件
然后把这个JAR文件放到rhapsody目录下的如下文件夹下 安装目录\rhapsody\data\modules
之后重新启动引擎 如果正常的话就可以在过滤器那边看到刚刚开发的那个过滤器了 如果没有 可以查看引擎下的日志文件 看看报错信息
这里举了一个最简单的例子 还没有设置过滤器图标以及参数的设置,下次再进行分享吧
|