in src/main/java/org/apache/sling/installer/core/impl/Activator.java [129:168]
private void registerServices(final BundleContext context) throws Exception {
final Class<?>[] serviceClasses = new Class<?>[] {
BundleTaskCreator.class,
DefaultTransformer.class
};
for(final Class<?> serviceClass : serviceClasses) {
final InternalService service = (InternalService) serviceClass.newInstance();
final Dictionary<String, Object> props = new Hashtable<String, Object>();
props.put(Constants.SERVICE_DESCRIPTION, service.getDescription());
props.put(Constants.SERVICE_VENDOR, VENDOR);
props.put(Constants.SERVICE_RANKING, new Integer(-100));
final String[] serviceInterfaces;
if ( service instanceof ResourceTransformer && service instanceof InstallTaskFactory ) {
serviceInterfaces = new String[] {
ResourceTransformer.class.getName(),
InstallTaskFactory.class.getName()
};
} else if ( service instanceof ResourceTransformer ) {
serviceInterfaces = new String[] {
ResourceTransformer.class.getName()
};
} else if ( service instanceof InstallTaskFactory ) {
serviceInterfaces = new String[] {
InstallTaskFactory.class.getName()
};
} else {
serviceInterfaces = null;
}
if ( serviceInterfaces != null ) {
this.services.add(service);
service.init(context, this.osgiControllerService, this.osgiControllerService);
this.registrations.add(context.registerService(
serviceInterfaces, service, props));
}
}
}