关于Liferay环境的配置,可以参考博客园中其他的文章,这里不再详细叙述。现在要在Liferay的基础上进行二次开发,正在学习中,为了在学习过程中留下足迹,现在通过此形式记录自己的学习笔记。
一、Liferay整体框架
由于目前要做Enterprise Integration,所以在这个架构当中主要说一下Enterprise Service Bus(企业服务总线),在Liferay Portal中使用Mule/ServiceMix作为ESB;其可以快速的将一些应用和服务增加到整个企业架构当中;当某些应用需要被替换的时候,在ESB中的某一些可以容易的断开连接。(此处尚未实践,暂时记录一下)
二、Portal开发策略
1. Plugins SDK enviroment
Plugins SDK是Liferay中,一种最为简单的插件开发,包括themes, layout templates, portlets, hooks和webs应用。对于 Plugins SDK来说,其支持热部署:即针对所开发的themes, layout templates等首先进行编译;然后,使用Ant将其生成WAR文件包同时拷贝到对应的部署的路径中;最后,Portal和Tomcat将检测自动热部署对应路径的文件,将新生成的WAR进行部署。
Plugins SDK开发的portlet,针对portal properties、language properties却无法进行修改。但是,如果针对上述属性进行修改的话,需要使用Liferay提供的HOOKS portlet.
2. Extension enviroment
Extension enviroment提供针对Liferay portal的定制。Extension就是扩展的意思,我们可以针对Liferay已经有的Portlet进行“覆盖”,这种特性保证我们所写的“覆盖代码”与Liferay Portal代码是相对分离的,即不用修改Portal原有的代码。
在整个部署期间,客户代码在Ext中将会和源码“融合”到一起,在定制的portal(Customized Liferay Portal)中两种代码会现在Ext中先行被“构建”,最终进行部署。在此过程中,我们会使用到ServicesBuilder(使用XML描述的代码生成器),由于portlet是在Ext开发,其不支持热部署(Hot-Deploy).
Extension enviroment一般用来管理configuration files, custom source code, custom JSP files,在Ext中,针对Liferay的Portal APIs,标签,JSP文件等所有的东西均可以使用和访问,不想Plugin SDK有相对应得限制。
3. Liferay portal source code
此种水平不到,暂不考虑。