public synchronized void notifyChange()

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