List of usage examples for org.springframework.beans.factory.support RootBeanDefinition getAttribute
@Override
@Nullable
public Object getAttribute(String name)
From source file:org.metaeffekt.dcc.commons.spring.xml.DCCConfigurationBeanDefinitionParser.java
private void registerProfileFactoryBeanIfRequired(String profileId, String deploymentId, String profileType, String profileDescription, File origin, BeanDefinitionRegistry registry, String solutionPropertiesPath, String deploymentPropertiesPath, ParserContext parserContext) { if (!registry.containsBeanDefinition(THE_ONE_TRUE_PROFILE_BEAN_NAME)) { BeanDefinitionBuilder profileFactoryBuilder = BeanDefinitionBuilder .rootBeanDefinition(ProfileFactoryBean.class); profileFactoryBuilder.addConstructorArgValue(Id.createProfileId(profileId)); profileFactoryBuilder.addConstructorArgValue(Id.createDeploymentId(deploymentId)); profileFactoryBuilder.addConstructorArgValue(profileType); profileFactoryBuilder.addConstructorArgValue(profileDescription); profileFactoryBuilder.addConstructorArgValue(origin); profileFactoryBuilder.addPropertyValue(PROPERTY_SOLUTION_PROPERTIES_PATH, solutionPropertiesPath); profileFactoryBuilder.addPropertyValue(PROPERTY_DEPLOYMENT_PROPERTIES_PATH, deploymentPropertiesPath); final ResourceLoader resourceLoader = parserContext.getReaderContext().getResourceLoader(); if (resourceLoader instanceof ProfileApplicationContext) { File solutionDir = ((ProfileApplicationContext) resourceLoader).getSolutionDir(); profileFactoryBuilder.addPropertyValue(PROPERTY_SOLUTION_DIR, solutionDir); }//from w w w. j a v a 2 s . co m registry.registerBeanDefinition(THE_ONE_TRUE_PROFILE_BEAN_NAME, profileFactoryBuilder.getBeanDefinition()); RootBeanDefinition factoryBean = (RootBeanDefinition) registry .getBeanDefinition(THE_ONE_TRUE_PROFILE_BEAN_NAME); factoryBean.setAttribute("builder", profileFactoryBuilder); } else { RootBeanDefinition factoryBean = (RootBeanDefinition) registry .getBeanDefinition(THE_ONE_TRUE_PROFILE_BEAN_NAME); BeanDefinitionBuilder builder = (BeanDefinitionBuilder) factoryBean.getAttribute("builder"); if (solutionPropertiesPath != null) { builder.addPropertyValue(PROPERTY_SOLUTION_PROPERTIES_PATH, solutionPropertiesPath); } if (deploymentPropertiesPath != null) { builder.addPropertyValue(PROPERTY_DEPLOYMENT_PROPERTIES_PATH, deploymentPropertiesPath); } } }