本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7583376
建立时间:2006年5月29日




[Java Open Source]Liferay Portal额外研究(二):对Liferay进行瘦身
软件技术

lhwork 发表于 2006/9/4 18:08:21

       Liferay的体系是很庞杂的,居然有些文章对外宣称Liferay是微内核,我想写这文章的哥们没有搞清楚什么是“微内核”。        Liferay 受其企业版本影响不小,毕竟Liferay公司主要还是“企业行为”,而不是一个单纯的一个“开源团体”行为。所以Liferay Portal本身内嵌了大量的Portlet,而且这些Portlet和Liferay Portal Framework甚至还有些交融。这就是为什么liferay portal-ejb.jar会有3M多。        虽然我们可以通过修改system.properties,portlet.properties,protal-spring这些基础配置文件来修改声明哪些服务不需要加载,也可以通过修改 WEB-INF目录下的portlet.xml,liferay-portlet.xml以及liferay-display.xml这些文件来删除一些不需要的portlet。        但是,我想真正敢真么干的,估计很少。这是为什么呢,就是应为Liferay内部实现的结构和代码,并不是非常良好。而对于这一块的优化,也没有很详细的帮助使用手册。在Liferay的网站上,只有一些教开发人员如何部署在不同服务器和数据库,如何新增一些portlet和theme,以及如何修改权限方面的浅显参考手册。        接下来就讲一讲对Liferay的瘦身操作,让Liferay变成一个只提供最基本的Portal框架和部署机制的portal context,而去掉那些多余的portlet。—— 因为这些多余的portlet大多国内的项目没有任何利用价值,但是如果需要部署的话,则会大大影响系统响应性能,而且让开发也变得比较麻烦。        当然,是否按照我今天说的方式对Liferay进行瘦身,这全凭习惯。有些朋友不愿改变Liferay的结构,只希望单纯通过配置来加载,也是可以的。 (1)保留Liferay最基本的一些组件              Liferay提供了一些基本组件,这些组件不属于Portal框架之内,但是整个portal服务是基于这些组件。 包结构 说明 com.liferay.counter 主要提供主建操作服务,Liferay内部的提供的组织结构表维护,就是采用counter提供的主建自增机制 com.liferay.filters 提供一些基础的基于servlet filter的过滤器 com.liferay.taglib 提供最基本的web展示标签 com.liferay.util 提供最基本的一些公共组件        以上这四个组件是必须保留的,另外还有两个基本组件:com.liferay.mail(提供邮件服务)和com.liferay.wsrp(提供webservice服务)。这个实际上应该属于可选的,如果觉得需要的话,也可以纳入。 (2)保留Liferay的Portal基础服务       Liferay的基础服务是以com.liferay.portal作为基础的,基本属于此包内的都尽量保留。目前其子package说明如下: 包结构 说明 com.liferay.portal 此包下放置了portal服务相关的一些异常 com.liferay.portal.action 负责一些struts action处理,比如Login等 com.liferay.portal.definitions 此包不是类包,而是负责放置一些定义相关的dtd文件资源。具体需要哪些dtd,可以参考com.liferay.portal.util. EntityResolver类 com.liferay.portal.dependencies 此包也不是类包,而是负责一些依赖性的资源文件。 com.liferay.portal.deploy 负责自动部署和热部署 com.liferay.portal.events 这个包内主要是一些行为处理类 com.liferay.portal.im 即时消息的支持 com.liferay.portal.jcr 提供JSR-170 JCR的支持,并内部提供Jackrabbit的实现支持 com.liferay.portal.job 对一些时间调度性Job的支持 com.liferay.portal.language 对语言的支持包 com.liferay.portal.lucene 对全文检索的支持 com.liferay.portal.model 一些模型对象的集合 com.liferay.portal.security   com.liferay.portal.servlet   com.liferay.portal.spring   com.liferay.portal.struts   com.liferay.portal.theme 提供对“主题”,也就是界面风格的支持 com.liferay.portal.tools   com.liferay.portal.util   com.liferay.portal.velocity   com.liferay.portal.wsrp           其实我们可以把Liferay这些portal服务再缩简一些,但刚开始建议大家不要随便的删减,保留原始的即可。 (3)缩减portlet应用       Liferay提供了大量的portlet应用,有大概七八十个。正应为这些portlet的加载和部署,让Liferay启动缓慢,消耗系统资源多。实际上,保持Liferay Portal正常运行,只需要其中几个就可以了,剩下的,我们可以根据需要进行删减。        下面列出了一些最基本的portlet,只需要保留如下的这些portlet即可保证liferay的正常启动和运行 包结构 说明 com.liferay.portlet Liferay Portlet的一些基础类 com.liferay.portlet.admin 管理portlet com.liferay.portlet.calendar 日期portlet虽然可以不需要,但是其内部提供对job的调度。 com.liferay.portlet.communities 这个是负责配置用户其所在的group,利用可以配置用户所拥有的工作区。 com.liferay.portlet.enterpriseadmin   com.liferay.portlet.language   com.liferay.portlet.layoutconfiguration   com.liferay.portlet.login   com.liferay.portlet.myaccount 用于配置用户信息 com.liferay.portlet.myplaces 用于控制用户的工作区选择 com.liferay.portlet.portletconfiguration   com.liferay.portlet.themegallery 用于控制主题风格 com.liferay.portlet.translator 这个包必须要,虽然portlet可以不用,但是被portal.language包引入了 com.liferay.portlet.wsrp 这个包必须要。         只需要保证如上的portlet在系统中,即可保证Liferay的正常运行。        但是,不以为只需要简单得讲起他的Porlet删除即可,那就大错特错了。Liferay在这一层面做的非常不友善,内部代码由一点点地耦合。很多地方依靠写if else来判断,所以造成了在portal这个服务包中,竟然存在很多地方引用portlet中的类。       不过这个倒不难修改,只需要花费一点点时间,简单修改一下就可以了。比较容易,此处就不多说。 (4)从配置文件中删除无用portlet的部署              这个主要是修改WEB-INF目录下的portlet.xml,liferay-portlet.xml以及liferay-display.xml这些文件。只需要依次把那些不需要的portlet删除即可。没有什么难度,细心点就可以了。 (5)修改服务配置文件        Liferay的配置文件也是很多,放置也是在好几个地方: 位置 配置文件说明 /WEB-INF portlet描述和struts等配置文件 /WEB-INF/classes system.properties和portal.properties配置文件 /WEB-INF/classes/META-INF portal-spring.xml,portal-hbm.xml,portal-log4j.xml配置文件。此位置可调,具体可以修改portal.properties内容。         为了让系统正确运行,我们还需要修改system.properties和portal.properties配置文件,这是Liferay核心配置文件。Liferay的很多服务都是在此配置文件中声明和修改。具体修改哪些本文不细说,改篇专门作个专题讲。        还需要修改portal-spring.xml(如果是professional版,则是portal-spring-professional.xml)。需要将那些已经没有的类bean删除。否则Liferay现在的加载机制,一旦碰到没有的类的bean,则加载不成功了。       当然portal-hbm.xml也是需要修改的,去掉那些不需要的类即可。        基本上经过以上五个步骤,Liferay即可完成手身了。在真实系统研发过程中,不一定非要选择这样的瘦身方式,毕竟这种方式,对后续Liferay版本的维护带来一定的工作量。—— 但是,如果这么尝试一把,则可以在通过调试过程中,对Liferay的配置体系和代码结构体系有个较为清晰的认识。 


阅读全文(6893) | 回复(2) | 编辑 | 精华
 


回复:Liferay Portal额外研究(二):对Liferay进行瘦身
软件技术

chaeyeon(游客)发表评论于2008/3/13 15:40:06

[url=http://www.haoting.com]music[/url]<a href=http://www.haoting.com>music</a>


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:Liferay Portal额外研究(二):对Liferay进行瘦身
软件技术

chaeyeon(游客)发表评论于2008/3/13 15:40:02

[url=http://www.haoting.com]music[/url]<a href=http://www.haoting.com>music</a>

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:Liferay Portal额外研究(二):对Liferay进行瘦身
软件技术

张老三(游客)发表评论于2007/8/21 12:59:48

呵呵,我就这么做了,连spring也不用了http://www.cchensoft.com/product/liferay-compact.aspx

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:Liferay Portal额外研究(二):对Liferay进行瘦身
软件技术

谷子(游客)发表评论于2007/5/26 10:40:43

呵呵!收藏了!

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.078 second(s), page refreshed 144769029 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号