in src/main/java/org/apache/sling/bundleresource/impl/BundleResourceWebConsolePlugin.java [151:188]
public void activate(BundleContext context) {
providerTracker = new ServiceTracker<ResourceProvider, ResourceProvider>(context,
ResourceProvider.class.getName(), null) {
@Override
public ResourceProvider addingService(final ServiceReference<ResourceProvider> reference) {
ResourceProvider service = null;
if ( reference.getProperty(BundleResourceProvider.PROP_BUNDLE) != null ) {
service = super.addingService(reference);
if (service instanceof BundleResourceProvider) {
provider.add((BundleResourceProvider) service);
}
}
return service;
}
@Override
public void removedService(final ServiceReference<ResourceProvider> reference,
final ResourceProvider service) {
if (service instanceof BundleResourceProvider) {
provider.remove(service);
}
super.removedService(reference, service);
}
};
providerTracker.open();
Dictionary<String, Object> props = new Hashtable<>();
props.put(Constants.SERVICE_DESCRIPTION,
"Web Console Plugin for Bundle Resource Providers");
props.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
props.put("felix.webconsole.label", LABEL);
props.put("felix.webconsole.title", "Bundle Resource Provider");
props.put("felix.webconsole.category", "Sling");
serviceRegistration = context.registerService(
Servlet.class, this, props);
}