进入liferay v7.0,官方推荐使用Gradle进行依赖管理和发布,所以必须知道Gradle的用法,网上资料很多,不赘述 只写依赖管理的分类 一般用外部仓库依赖,也可以用本地文件依赖(依赖本地jar包),如: 本地文件依赖 dependencies { //单文件依赖 compile files('libs/activiti-engine-5.21.0.jar') //某文件夹的全部依赖 compile fileTree(dir: 'libs', include: '*.jar') 其中l…
hook开发是Liferay客制扩展的一种方式,比插件灵活,即可以扩展liferay门户,也能对原有特性进行更改,Liferay有许多内置的服务,比如用hook甚至可以覆盖Liferay服务. 可作为系统服务挂钩(Liferay Service Hook),还有其他类型的hook... Liferay6.2 时的hook开发比较有限,而在Liferay7则大为不同,OSGi services的彻底改进至Liferay的底层模型框架,使得Liferay可以支持更多的定制扩展!OSGi plugin…
Portlet 生命周期 init() =〉 render() =〉 processAction() =〉 processEvent() =〉 serveResource() =〉destroy() init() 在Liferay容器部署portlet时,启动portlet实例化 init有两个写法: public void init() throws PortletException public void init(PortletConfig config) throws PortletEx…
开发目的: 实现通用流程自动化处理(即实现不需要hardcode代码的bpm统一处理后台,仅需要写少量前端html form代码和拖拽设计BPM定义) 既可独立运行或可依托于Liferay或依托其它门户系统(使用portlet规范技术实现)运行: 先实现一个JSP + Servlet版的通用流程处理,将来迁移到Portlet 迁移工作将保留大量的前后端代码,仅需要改动少量的注解. 考虑到Liferay的客户端体系是bootstrap+jQuery(对移动端的支持非常好),JSP的实现也用了这两者…
写到第12章才出现Liferay的内容,希望可以厚积薄发. 我们的目标是不使用不维护Activiti的用户组织架构,只维护Liferay的体系,这样的好处是非常明显的,即不用做组织架构的同步工作. 原理是继承实现org.activiti.engine.impl.interceptor.SessionFactory 首先继承用户实例,用liferay的用户模型 import org.activiti.engine.impl.persistence.entity.UserEntity; public…
前言 OSGi是目前动态模块系统的事实上的工业标准,它适用于任何需要模块化.面向服务.面向组件的应用程序.Eclipse如此庞大和复杂的插件体系,就是基于OSGi.Liferay也是基于OSGi.OSGi是模块化设计的一种标准,适用于大中型项目.在一些小型项目中,开发者也可以自己设计私有的classLoader机制来实现插件开发环境,比如openfire OSGi是在Java平台上开发模块化应用程序的一种方式.它允许你构建模块(称之为bundle),它们彼此之间是隔离的,具备明确的和可管理的依赖…
处理依赖关系 集成Activiti之前,必须搞清楚其中的依赖关系,才能在Gradle里进行配置. 依赖关系: 例如,其中activiti-engine依赖于activiti-bpmn-converter,而activiti-bpmn-converter又依赖于activiti-bpmn-model 那么这以下的引用都是要设置的,缺一不可,否则portlet会无法注入进OSGi容器 org.activiti:activiti-engine:jar:5.xx.0+- org.activiti:act…
官网上的教材说实话实在精简不清晰. https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/creating-an-mvc-portlet 版本7的Action机制换了: https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/mvc-action-command 上边的例子有不少java代码直接写在jsp里,感觉有点不舒服,要想想替代方法. 关于新建Por…
Liferay最大的好处是不仅接口强大,利于扩展,就连JSP定制扩展都提供了3种方式. 修改核心jsp代码,有3种修改方式:1.暴力修改直接修改(位于portal-web/docroot/html),编译部署,会带来风险,而且不能同步更新. 2.全量扩展修改热部署jsp文件(替代原有jsp),这是v7.0下的OSGi方式,实现方式非常优雅. 3.CustomJspBag Hook方式实现CustomJspBag接口,做jsp片段式的修改,同样是增量热部署,也是v7.0下的OSGi方式(需要增加依…
第一步:修改liferay-hook.xml <?xml version="1.0"?> <!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.2.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_2_0.dtd"> <hook> <portal-properties>portal.properties</…