Resolution
To begin, unzip the patching-tool parallel to the domain server in use.
For example, if using base_domain
found in C:\Oracle\Middleware\user_projects\domains
, then put the patching-tool in the domains folder. The patching tool will have to be manually configured to find the WAR file. Edit or create a default.properties
file in the patching-tool folder to look like this:
patching.mode=binary jdk.version=jdk6 war.path=${DOMAIN_HOME}/servers/${SERVER_NAME}/stage/liferay-portal-6/liferay-portal-6.1.20-ee-ga2.war/ global.lib.path=${DOMAIN_HOME}/lib plugin.discovery.method=manual liferay.home=${DOMAIN_HOME}
- The
global.lib.path
property points to the lib folder in the WebLogic domain where the Liferay dependencies were copied to. - The
war.path
property points to the location of the deployed Liferay WAR file. - In
war.path
, there is a trailing "/" which is very important. - Setting the
plugin.discovery.method
to manual is required for some application servers like WebLogic. Otherwise, ifauto discovery
is chosen the patching tool will look for plugins in the parent directory of the portal web folder. Because application servers like WebLogic do not come bundled and the folder hierarchy is different, paths to plugins and patches have to declared manually.- Here is an older example using the chat portlet:
plugin.discovery.method=manual plugin.list=chat-portlet plugin.chat-portlet.path=../chat-portlet-6.1.10.1-ee-ga1-20120217132404825.war/ plugin.chat-portlet.id=liferay-ee/chat-portlet/6.1.10.1-ee-ga1-20120217132404825/war
- Here is an older example using the chat portlet:
- Depending on the deployment and version of Liferay, the value of war.path may differ for your environment. Please make sure it points to the correct directory.
Frequently Asked Questions (FAQs)
What is the difference between auto-discovery and manual?
Some customers have their own deployment policy which does not allow them to use the patching-tool. In this case they need to create the patched portal version by themselves in a separate directory and deploy those files every time a fix is delivered. After unzipping the patching-tool the configuration file (default.properties) needs to be created by the user as the auto-detection does not work for zip files. This is where the plugins.discovery.method=manual
becomes important.
Can users use both manual and auto-discovery?
A hybrid mode is possible. Users can use the manual mode as well beside the auto-discovery if users set the discovery method to both
as the article describes. The Patching Tool will detect the plugins in the default folder and the plugins listed manually.) Here is an example configuration with both discovery methods:
plugin.discovery.method=both plugin.list=chat-portlet plugin.chat-portlet.path=../chat-portlet-6.1.10.1-ee-ga1-20120217132404825.war/ plugin.chat-portlet.id=liferay-ee/chat-portlet/6.1.10.1-ee-ga1-20120217132404825/war plugins.path=path_to_the_plugins # For the default auto discovery method: # plugin.discovery.method is optional, doesn't need to be set as it's the default mode # plugin.discovery.method=auto-discovery plugins.path=path_to_the_plugins
Additional Information
If /patching-tool.sh auto-discovery
is run, it will find the temp folders that Liferay has been deployed to. These folders are overridden whenever Liferay is started up, and the contents of the original WAR file will override the temp folders, which is why patching the WAR itself is required.