public synchronized void notifyChange()

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();
        }
    }