@Activate
protected void activate(
final BundleContext bundleContext, Map<String, Object> properties) {
_logger = new Logger(bundleContext);
DB db = DBManagerUtil.getDB();
ServiceTrackerMapListener<String, UpgradeInfo, List<UpgradeInfo>>
serviceTrackerMapListener = null;
_releaseManagerConfiguration = ConfigurableUtil.createConfigurable(
ReleaseManagerConfiguration.class, properties);
if (_releaseManagerConfiguration.autoUpgrade()) {
serviceTrackerMapListener =
new UpgradeInfoServiceTrackerMapListener();
}
_serviceTrackerMap = ServiceTrackerMapFactory.openMultiValueMap(
bundleContext, UpgradeStep.class,
StringBundler.concat(
"(&(upgrade.bundle.symbolic.name=*)(|(upgrade.db.type=any)",
"(upgrade.db.type=", String.valueOf(db.getDBType()), ")))"),
new PropertyServiceReferenceMapper<String, UpgradeStep>(
"upgrade.bundle.symbolic.name"),
new UpgradeServiceTrackerCustomizer(bundleContext),
Collections.reverseOrder(
new PropertyServiceReferenceComparator<UpgradeStep>(
"upgrade.from.schema.version")),
serviceTrackerMapListener);
}