private static Set<ServiceRegistration<?>> registerToSR(final AutoCloseable instance,
final BundleContext bundleContext,
final Map<ServiceInterfaceAnnotation, String /* service ref name */> serviceNamesToAnnotations) {
Set<ServiceRegistration<?>> serviceRegistrations = new HashSet<>();
for (Entry<ServiceInterfaceAnnotation, String /* service ref name */> entry : serviceNamesToAnnotations
.entrySet()) {
ServiceInterfaceAnnotation annotation = entry.getKey();
Class<?> requiredInterface = annotation.osgiRegistrationType();
if (!annotation.registerToOsgi()) {
LOG.debug("registerToOsgi for service interface {} is false - not registering", requiredInterface);
continue;
}
Preconditions.checkState(requiredInterface.isInstance(instance),
instance.getClass().getName() + " instance should implement " + requiredInterface.getName());
Dictionary<String, String> propertiesForOsgi = createProps(entry.getValue());
ServiceRegistration<?> serviceRegistration = bundleContext.registerService(requiredInterface.getName(),
instance, propertiesForOsgi);
serviceRegistrations.add(serviceRegistration);
}
return serviceRegistrations;
}
BeanToOsgiServiceManager.java 文件源码
java
阅读 29
收藏 0
点赞 0
评论 0
项目:hashsdn-controller
作者:
评论列表
文章目录