How to resolve Liferay Portal patch collisions with custom plugins

Overview

This article outlines a process to resolve Liferay Portal patch collisions with custom portal plugins

Background

The Liferay Patching Tool can be used to patch a Liferay Portal 6.1 or 6.2 Enterprise Edition (EE) installation (binary mode) or source code tree (source mode).

The patching tool can also report collisions between Liferay Portal runtime resource files and custom plugin resource files (eg. JSP).

To resolve Liferay Portal patch plugin collisions with custom portal plugins, we can use this approach :

1/ Patch Liferay Portal source code using patching tool.

2/ Merge Liferay Portal patched source code with custom portal plugin source code.

Please refer to the resolution steps and references below.

Patch Collision Resolution Steps

1/ Patch Liferay Portal source code using Liferay Patching Tool and current patches

Refer to following article Using Liferay Portal 6.2 - Patching Liferay

patching.mode: This can be binary (the default) or source, if you’re patching the source tree you’re working with.
Liferay patches contain both binary and source patches.
If your development team is extending Liferay, you’ll want to provide the patches you install to your development team
so they can patch their source tree.

Also refer to article Permeance Blog - How to patch Liferay Portal 6.1 EE source

2/ Identify Liferay Portal collisions with custom plugins

eg.

./patching-tool.sh list-collisions
Listing collisions (file, plugin, patch):
  html/portlet/users_admin/view_tree.jspf, My Login Hook, hotfix-260
  WEB-INF/ext-impl/ext-impl.jar/com/liferay/portlet/usersadmin/action/EditUserAction.class, cust-portal Ext, core-2
  WEB-INF/ext-impl/ext-impl.jar/com/liferay/portal/util/PropsValues.class, cust-portal Ext, security-hotfix-lsv-175
  WEB-INF/ext-impl/ext-impl.jar/com/liferay/portal/service/impl/UserLocalServiceImpl.class, cust-portal Ext, security-hotfix-5
  WEB-INF/ext-impl/ext-impl.jar/com/liferay/portal/service/impl/UserLocalServiceImpl$1.class, cust-portal Ext, security-hotfix-5

 

3/ Merge patched Liferay Portal 6.1 source code with your custom plugins

Use your favourite text file diff tool to perform a two-way or three-way merge.
 

4/ Build and package custom plugins

Rebuild custom plugins using Liferay Apache Ant SDK and/or Liferay Maven SDK.


5/ Deploy revised custom plugins

Deploy revised custom plugins to portal.


6/ Repeat steps 3 to 5 as required

Rinse, lather and repeat.

 

References