19.3. Patching a Standalone Container
systemfolder. When the patch is applied, the container's configuration is changed so that it points to the patched artifacts instead of the artifacts from the original installation. This makes it easy for the system to be restored to its original state or to selectively back out patches.
Applying a patch
- Before you proceed to install the patch, make sure to read the text of the
READMEfile that comes with the patch, as there might be additional manual steps required to install a particular patch.
- Make sure you install all the Apache Karaf features you need before you start to install the patch. If you install any features after installing the patch, the features will install the original unpatched versions of the dependencies—see the section called “Adding features to a patched container”.
- Add the patch to the container's environment using the patch:add command.Example 19.1, “Adding a Patch to a Broker's Environment” shows the command for adding the patch contained in the patch file
patch.zipfrom the local file system.
Example 19.1. Adding a Patch to a Broker's Environment
patch:add file://patch.zipThis command copies the specified patch file to the container's
systemfolder and unpacks it.
- Simulate installing the patch using the patch:simulate command.This will generate a log of the changes that will be made to the container when the patch is installed, but will not make any actual changes to the container.NoteThe patch:list command displays a list of all patches added to the container's
- Review the simulation log to understand the changes that will be made to the container.
- Apply the patch to the container using the patch:install command.WarningRunning patch:install before the container is fully started and all of the bundles are active will cause the container to hang.NoteThe patch:list command displays a list of all patches added to the container's
systemfolder.The container will need to restart to apply the patch. If you are using a remote console, you will lose the connection to the container. If you are using the container's local console, it will automatically reconnect when the container restarts.
- Validate the patch, by searching for one of the patched artifacts. For example, if you had just upgraded JBoss Fuse 6.1 to the patch with build number
611423, you could search for bundles with this build number, as follows:
JBoss Fuse:karaf@root> osgi:list -s -t 0 | grep -i 611423 [ 6] [Active ] [ ] [ ] [ 10] org.apache.felix.configadmin (1.4.0.redhat-611423)
Rolling back a patch
Example 19.2. Rolling Back a Patch
Adding features to a patched container
- Roll back the patch, as follows:
- Install the additional features you require, using the features:install command.
- Apply the patch to the container using the patch:install command.
- The container automatically restarts to apply the patch. If you are using a remote console, you will lose the connection to the container. If you are using the container's local console, it will automatically reconnect when the container restarts.