How to install a CRX hotfix (non-quickstart)
Question / Problem
If running CRX in a 3rd party application server such as WebSphere or WebLogic, the installation of a CRX hotfix/featurepack requires some manual steps to complete.
This article describes the necessary steps. In the following, the term 'CRX hotfixpack' will apply to both hotfixpacks and featurepacks.
Answer / Resolution
CRX hotfixpacks are basically executable JAR files that are ran after the corresponding package has been installed and the instance restarted. During execution, it will unpack itself, copy all files that need to be upgraded in the crx-quickstart/server/runtime/0/_crx/ (sub-)directories and removes older versions in case of Java libraries.
This mechanism only works for default quickstart setups where a well-known structure on the filesystem is given.
For setups where CRX is deployed into a 3rd party application server, the above mechanism will not be effective, thus installing a CRX hotfixpack and restarting the instance will not update/replace files within the <crx-webapp> as it is impossible to tell where an app-server is storing the exploded CRX webapp.
Following please find the installation procedure for non-quickstart CRX setups:
- download a CRX hotfix package from Package Share or upload it manually via the CRX Package Manager
- install the CRX hotfix package
- download CRX hotfix package to disk
- unpack it into a temporary directory
- unpack the jar-file in jcr_root/var/crxpatches (e.g. crx-updater-2.2.0.xx.jar)
- unpack the zip-file com/day/crx/updater/Update.zip
- stop the instance
- copy the contents of above zip-file to the corresponding directories within the exploded <crx-webapp> of the application server in use
- make sure to delete previous versions of installed Java libraries below <crx-webapp>/WEB-INF/lib to avoid classloading issues
- restart the instance
The last step is crucial as there is no guarantee that only those Java libraries with the highest version number are loaded.