BeanToOsgiServiceManager.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:hashsdn-controller 作者:
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;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号