- BlankTransactionServiceTracker customizer = new BlankTransactionServiceTracker(configRegistry);
- ServiceTracker<?, ?> serviceTracker = new ServiceTracker(context, ModuleFactory.class, customizer);
+ // start extensible tracker
+ ExtensibleBundleTracker<?> bundleTracker = new ExtensibleBundleTracker<>(context,
+ primaryModuleFactoryBundleTracker, moduleInfoBundleTracker);
+ bundleTracker.open();
+
+ // register config registry to OSGi
+ AutoCloseable configRegReg = registerService(context, configRegistry, ConfigRegistryImpl.class);
+
+ // register config registry to jmx
+ ConfigRegistryJMXRegistrator configRegistryJMXRegistrator = new ConfigRegistryJMXRegistrator(configMBeanServer);
+ try {
+ configRegistryJMXRegistrator.registerToJMX(configRegistry);
+ } catch (InstanceAlreadyExistsException e) {
+ throw new IllegalStateException("Config Registry was already registered to JMX", e);
+ }
+
+ // TODO wire directly via moduleInfoBundleTracker
+ ServiceTracker<ModuleFactory, Object> serviceTracker = new ServiceTracker<>(context, ModuleFactory.class,
+ blankTransactionServiceTracker);