in src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java [521:557]
private void registerFactory(final BundleContext localContext) {
final FactoryRegistration local = new FactoryRegistration();
if ( localContext != null ) {
// activate and register factory
final Dictionary<String, Object> serviceProps = new Hashtable<>();
serviceProps.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
serviceProps.put(Constants.SERVICE_DESCRIPTION, "Apache Sling Resource Resolver Factory");
local.commonFactory = new CommonResourceResolverFactoryImpl(this);
local.commonFactory.activate(localContext);
local.factoryRegistration = localContext.registerService(
ResourceResolverFactory.class, new ServiceFactory<ResourceResolverFactory>() {
@Override
public ResourceResolverFactory getService(final Bundle bundle, final ServiceRegistration<ResourceResolverFactory> registration) {
if ( ResourceResolverFactoryActivator.this.bundleContext == null ) {
return null;
}
final ResourceResolverFactoryImpl r = new ResourceResolverFactoryImpl(
local.commonFactory, bundle,
ResourceResolverFactoryActivator.this.getServiceUserMapper());
return r;
}
@Override
public void ungetService(final Bundle bundle, final ServiceRegistration<ResourceResolverFactory> registration, final ResourceResolverFactory service) {
// nothing to do
}
}, serviceProps);
local.runtimeRegistration = localContext.registerService(RuntimeService.class,
this.getRuntimeService(), null);
this.factoryRegistration = local;
}
}