在安装EOS Platform的时候,会有选择插件的界面,包括bps、cap、mobile(7.3提供)、sso。当选择的bps之后,在EOS的default包(应该称为基础包)中,将包含BPS的内容。EOS导出EAR包的原理是,将新建的EOS项目中的内容添加到default包中,然后将default整体导出为EAR包。在某些使用EOS项目中没有用到BPS,并且不需要BPS引擎启动,需要通过修改配置,禁用BPS服务。
1 直捣黄龙 – 修改EAR包
导出的EAR包中,包含了所有的内容,所以想要禁用BPS服务,可以直接修改EAR包。
设项目名称为project,导出的EAR包为project.ear。
在project.ear/project.war/WEB-INF/_srv/work/system/com.primeton.workflow.core/META-INF中,handler-contribution.xml文件中配置了BPS服务启动的功能:
==”com.primeton.workflow.message.startup.WFStartUpListenerMessage”/></handlers>
删除或注销所有的handler配配置,下面的内容即可:
<handlers></handlers>
这样在启动部署EAR的时候,不会启动BPS服务了。
2 釜底抽薪 – 修改default包
每次修改EAR包实在太麻烦,干脆直接把default包中关于BPS服务的内容删除得了。
设EOS Platform的安装目录为EOS_HOME,需要修改的文件在:%EOS_HOME%\ide\eclipse\dropins\PLATFORM_7.2.0.0\plugins\com.primeton.studio.ear.core_7.1.0.0\template\ear\default\war\WEB-INF_srv\work\system\com.primeton.workflow.core\META-INF。
与第一步中相同,修改handler-contribution.xml,将所有的handler删除或注销。因为这里是default包,建议采用注销:
<handlers><!–<handler handle-class=”com.primeton.workflow.api.listener.WFStartUpListener”/><handler handle-class=”com.primeton.workflow.message.startup.WFStartUpListenerMessage”/>–></handlers>3 斩草除根 – 清理
通过上面两种方式后,可以在EOS项目部署的过程中禁用BPS服务,但是EOS项目中还是包含了BPS的其他内容,并且导出的EAR包中存在其他内容,虽然现在硬盘不值钱,但是作为有洁癖的程序员,绝对不希望这样。那就手动清理EOS项目及EAR包。
3.1 清理构建库
在EOS项目上右键,点击属性,选择Java 构建路径,选择选项卡库,删除BPS Libraries、CAP程序全量库。
3.2 清理配置文件
在EOS项目的系统配置文件夹中,保存了系统级的配置文件,需要清理一些BPS相关的配置文件,包括:log4j-wf.xml、wfengine-config.xml、wfsys-config.xml三个配置文件。
3.3 清理BPS配置内容
在第2步中已经删除了BPS相关配置文件,但是在公共的配置文件中,还存在BPS相关的内容需要清理。
3.3.1 log4j-trace.xml
在log4j-trace.xml中存在bps日志打印配置,全部删除:
============”CONSOLE”/></logger>3.3.2 user-config.xml3.3.2.1 登录过滤
在user-config.xml中需要修改(修改也算是清理的一种吧)的是关于登录过滤器的内容:
<group name=”Login-Filter”><!– pages that can be accessed by any one including those not login –><configValue key=,**/org,**/org,**/org</configValue><configValue key=”Include”>*.flow,*.flowx,*.jsp,*.html,*.ajax,*.ext,*.action,*.beanx</configValue><!– the page to display when user not login –><configValue key=”LoginPage”>/coframe/auth/login/login.jsp</configValue></group>
修改为:
===”LoginPage”>/index.jsp</configValue></group>3.3.2.2 SSO及CAP
需要删除关于SSO和CAP所需数据源的相关配置:
=====”passwordEncoder”>com.primeton.cap.sso.encrypt.MD5PasswordEncoder>=></module>3.3.2.3 门户(Portal)模式
因为上面删除了SSO登录,在登录过滤中设置*.jsp的文件需要登录,所以这里暂时将项目修改为门户(Portal)模式:
=”Portal”>false</configValue></group>
修改为:
=”Portal”>true</configValue></group>3.4 删除工作流相关文件
生成的EOS项目中,默认生成工作流相关的web内容和bps配置文件夹,直接删除。
3.5 清理EAR包 – 慎用
最后就是清理EAR包中的内容了,因为我这里是一个空项目,可以很清楚的看到那些是默认的内容,如果是在正式项目中,可能就不是很明显了,所以需要不要轻易走这步。
除了自己创建的文件夹、common、css、WEB-INF之外,其他的全部可以删除,因为删除内容过多,所以需要谨慎。
4 总结
通过上面几步,可以禁用BPS服务,并一定程度的清理EAR包中的内容,但是不负责任的说,并不能完全清理,就像Windows系统,即使再高级的垃圾清理软件,也不能把所有垃圾清理干净。
所以需要在创建项目前,规划好是否真的不需要BPS服务,如果是,那就废点功夫,重新安装一个干净的EOS Platform,这样导出的EAR包绝对是干净的。
5 补充我只愿,在你的理想和希望里能为你增加一点鼓励,