public void activate()

in src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java [101:136]


    public void activate(final BundleContext bundleContext, final EventAdmin eventAdmin, final ChangeListener listener) {
        this.bundleContext = bundleContext;
        this.eventAdmin = eventAdmin;
        this.listener = listener;
        this.tracker = new ServiceTracker<>(bundleContext,
                ResourceProvider.class,
                new ServiceTrackerCustomizer<ResourceProvider, ServiceReference<ResourceProvider>>() {

            @Override
            public void removedService(final ServiceReference<ResourceProvider> reference, final ServiceReference<ResourceProvider> ref) {
                final ResourceProviderInfo info = infos.remove(ref);
                if ( info != null ) {
                    Object pid = ref.getProperty(Constants.SERVICE_PID);
                    if ( pid != null && !(pid instanceof String) ) {
                        pid = null;
                    }
                    unregister(info, (String)pid);
                }
            }

            @Override
            public void modifiedService(final ServiceReference<ResourceProvider> reference, final ServiceReference<ResourceProvider> service) {
                removedService(reference, service);
                addingService(reference);
            }

            @Override
            public ServiceReference<ResourceProvider> addingService(final ServiceReference<ResourceProvider> reference) {
                final ResourceProviderInfo info = new ResourceProviderInfo(reference);
                infos.put(reference, info);
                register(info);
                return reference;
            }
        });
        this.tracker.open();
    }