This article explains how to avoid bundle refresh issues after migrating from 5.6.x to 6.0.x.
This procedure only applies when migrating from 5.6.x to 6.0.x. For all other versions of Talend Runtime, please refer to the Installation and Upgrade Guide for your platform.
After migrating from 5.6.x to 6.0.x, your Karaf 4.0.x-based Talend Runtime container may seem to refresh dozens of bundles, or may install or uninstall unexpected bundles, when you are installing other features.
If the container seems to refresh a lot more bundles than expected, this is because the refreshes can easily cascade.
For example, a bundle that embeds an API package also has an optional dependency to another package. If this optional dependency is fulfilled by a newly-installed feature, then the bundle is rewired and will cause all bundles that are wired to the API package to also be refreshed.
The Feature Service can be turned to verbose mode (-v) to show more details of what it does. The output will show which bundles are installed, uninstalled, refreshed, stopped, and started.
For example:
feature:install -v activemq
In the logged messages you will find lines like this:
org.ops4j.pax.web.pax-web-jsp/4.2.0 (Wired to org.ops4j.pax.web.pax-web-spi/4.2.0 which is being refreshed)
This means that pax-web-jsp is being refreshed because pax-web-spi is refreshed. So all lines containing "which is" are not the root cause. It helps to use:
feature:install -t -v activemq | grep -v "which is"
The option -t (simulate) makes sure you are only looking at what would be changed, but does not install anything. The grep part filters out all non-root causes.
There are some ways to avoid such cascading refreshes: