Map<String, Object> profileAnnotationMetadata = newBeanDefinition.getMetadata().
getAnnotationAttributes("org.springframework.context.annotation.Profile");
if (profileAnnotationMetadata != null && profileAnnotationMetadata.get("value") != null
&& profileAnnotationMetadata.get("value") instanceof String[]) {
String[] profiles = (String[]) profileAnnotationMetadata.get("value");
ProfileAwareCompositeComponentDefinition profileAware = new ProfileAwareCompositeComponentDefinition(beanName, newBeanDefinition.getSource(), profiles);
profileAware.addNestedComponent(new BeanComponentDefinition(newBeanDefinition, beanName));
beansConfigRegistrationSupport.registerComponent(profileAware);
profileDefinedBeans.add(beanName);
}
else {
beansConfigRegistrationSupport.registerComponent(new BeanComponentDefinition(newBeanDefinition,