in src/main/java/org/apache/sling/installer/factories/configuration/impl/ServicesListener.java [78:116]
public synchronized void notifyChange() {
// check if all services are available
final ResourceChangeListener listener = (ResourceChangeListener) this.changeHandlerListener.getService();
final ConfigurationAdmin configAdmin = (ConfigurationAdmin) this.configAdminListener.getService();
final InfoProvider infoProvider = (InfoProvider) this.infoServiceListener.getService();
if (configAdmin != null && listener != null && infoProvider != null) {
if (configTaskCreator == null) {
active.set(true);
// start and register osgi installer service
this.configTaskCreator = new ConfigTaskCreator(listener, configAdmin, infoProvider);
final ConfigUpdateHandler handler = new ConfigUpdateHandler(configAdmin, this);
configTaskCreatorRegistration = handler.register(this.bundleContext);
if (Activator.MERGE_SCHEMES != null) {
this.webconsoleRegistration = this.bundleContext.registerService(
"org.apache.felix.webconsole.spi.ConfigurationHandler",
new ServiceFactory<Object>() {
@Override
public Object getService(
final Bundle bundle, final ServiceRegistration<Object> registration) {
return new WebconsoleConfigurationHandler(bundleContext, infoProvider);
}
@Override
public void ungetService(
final Bundle bundle,
final ServiceRegistration<Object> registration,
final Object service) {
((WebconsoleConfigurationHandler) service).deactivate();
}
},
null);
}
}
} else {
this.stop();
}
}