in src/main/java/org/apache/sling/installer/factories/configuration/impl/ServicesListener.java [78:110]
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();
}
}