in taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginImpl.java [131:158]
public void stop() throws PluginException {
if (state == STARTED) {
List<Plugin> installedPlugins = pluginManager.getInstalledPlugins();
for (Bundle bundle : getBundles()) {
// check if bundle is used by other plugins
boolean bundleUsed = false;
for (Plugin installedPlugin : installedPlugins) {
if (!installedPlugin.equals(this) && installedPlugin.getState() == STARTED) {
if (installedPlugin.getBundles().contains(bundle)) {
bundleUsed = true;
break;
}
}
}
if (!bundleUsed) {
try {
logger.info("Stopping bundle " + bundle.getSymbolicName());
bundle.stop();
} catch (BundleException e) {
logger.warn(
String.format("Error stopping bundle %1$s for plugin %2$s",
bundle.getSymbolicName(), getName()), e);
}
}
}
state = STOPPED;
}
}