- ServiceDescriptor descriptor = svc.getDescriptor();
- String beanName = _required.get(descriptor);
- ConstructorArgumentValues cargs = new ConstructorArgumentValues();
- cargs.addGenericArgumentValue(id);
- BeanDefinition definition = new RootBeanDefinition(ProvidedServiceBean.class, cargs,
- new MutablePropertyValues());
- _parentContext.registerBeanDefinition(beanName, definition);
+ ProvidedInterfaceDescriptor descriptor = svc.getDescriptor();
+ RequiredInterfaceDescriptor[] requiredServices = SystemAssembler.filterRequiredServices(descriptor,
+ _required.keySet());
+ for (RequiredInterfaceDescriptor required: requiredServices) {
+ String beanName = _required.get(required);
+ ConstructorArgumentValues cargs = new ConstructorArgumentValues();
+ cargs.addGenericArgumentValue(id);
+ BeanDefinition definition = new RootBeanDefinition(ProvidedServiceBean.class, cargs,
+ new MutablePropertyValues());
+ _parentContext.registerBeanDefinition(beanName, definition);
+ }