Setting Up the Patching Tool in Weblogic

This article details how to set up the Liferay patching tool in a Weblogic based environment.

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}
A few things to note:
  • 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, if auto 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
  • 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.

Was this article helpful?
1 out of 1 found this helpful