Example usage for org.springframework.beans.factory.config BeanDefinition setFactoryMethodName

List of usage examples for org.springframework.beans.factory.config BeanDefinition setFactoryMethodName

Introduction

In this page you can find the example usage for org.springframework.beans.factory.config BeanDefinition setFactoryMethodName.

Prototype

void setFactoryMethodName(@Nullable String factoryMethodName);

Source Link

Document

Specify a factory method, if any.

Usage

From source file:com.tacitknowledge.flip.spring.config.FeatureServiceHandlerParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(FeatureServiceDirectFactory.class);
    RootBeanDefinition factoryBean = (RootBeanDefinition) factoryBuilder.getBeanDefinition();
    parserContext.getRegistry().registerBeanDefinition(FlipSpringAspect.FEATURE_SERVICE_FACTORY_BEAN_NAME,
            factoryBean);//w  ww.j a v a 2 s  . co m

    MutablePropertyValues factoryPropertyValues = new MutablePropertyValues();
    factoryBean.setPropertyValues(factoryPropertyValues);

    String environmentBean = element.getAttribute("environment");
    if (environmentBean != null && !environmentBean.isEmpty()) {
        factoryPropertyValues.addPropertyValue("environment", new RuntimeBeanNameReference(environmentBean));
    }

    Element contextProvidersElement = DomUtils.getChildElementByTagName(element, "context-providers");
    if (contextProvidersElement != null) {
        List contextProvidersList = parserContext.getDelegate().parseListElement(contextProvidersElement,
                factoryBean);
        if (contextProvidersList != null && !contextProvidersList.isEmpty()) {
            factoryPropertyValues.addPropertyValue("contextProviders", contextProvidersList);
        }
    }

    Element propertyReadersElement = DomUtils.getChildElementByTagName(element, "property-readers");
    if (propertyReadersElement != null && propertyReadersElement.hasChildNodes()) {
        List propertyReadersList = parserContext.getDelegate().parseListElement(propertyReadersElement,
                factoryBean);
        if (propertyReadersList != null && !propertyReadersList.isEmpty()) {
            factoryPropertyValues.addPropertyValue("propertyReaders", propertyReadersList);
        }
    }

    Element propertiesElement = DomUtils.getChildElementByTagName(element, "properties");
    if (propertiesElement != null && propertiesElement.hasChildNodes()) {
        Properties properties = parserContext.getDelegate().parsePropsElement(propertiesElement);
        if (properties != null && !properties.isEmpty()) {
            factoryPropertyValues.addPropertyValue("properties", properties);
        }
    }

    BeanDefinitionBuilder featureServiceBuilder = BeanDefinitionBuilder.genericBeanDefinition();
    BeanDefinition featureServiceRawBean = featureServiceBuilder.getRawBeanDefinition();
    featureServiceRawBean.setFactoryBeanName(FlipSpringAspect.FEATURE_SERVICE_FACTORY_BEAN_NAME);
    featureServiceRawBean.setFactoryMethodName("createFeatureService");
    parserContext.getRegistry().registerBeanDefinition(FlipSpringAspect.FEATURE_SERVICE_BEAN_NAME,
            featureServiceBuilder.getBeanDefinition());

    return null;
}

From source file:org.springframework.social.config.support.AbstractConnectionRepositoryConfigSupport.java

protected BeanDefinition registerConnectionRepository(BeanDefinitionRegistry registry,
        String usersConnectionRepositoryId, String connectionRepositoryId, String userIdSourceRef) {
    if (logger.isDebugEnabled()) {
        logger.debug("Registering ConnectionRepository bean");
    }/*from   www  .  j  ava  2 s .  co  m*/
    // TODO: Hackish use of SpEL to reference userIdSource
    BeanDefinition connectionRepositoryBD = BeanDefinitionBuilder.genericBeanDefinition()
            .addConstructorArgValue("#{" + userIdSourceRef + ".userId}").getBeanDefinition();
    connectionRepositoryBD.setFactoryBeanName(usersConnectionRepositoryId);
    connectionRepositoryBD.setFactoryMethodName(CREATE_CONNECTION_REPOSITORY_METHOD_NAME);
    connectionRepositoryBD.setScope("request");
    registry.registerBeanDefinition(connectionRepositoryId,
            decorateWithScopedProxy(connectionRepositoryId, connectionRepositoryBD, registry));
    return connectionRepositoryBD;
}

From source file:org.springframework.social.config.support.ProviderConfigSupport.java

public static BeanDefinition registerApiBindingBean(BeanDefinitionRegistry registry,
        Class<? extends ApiHelper<?>> apiHelperClass, Class<?> apiBindingType) {
    if (logger.isDebugEnabled()) {
        logger.debug("Registering API Helper bean for " + ClassUtils.getShortName(apiBindingType));
    }//from   www.j av  a2s  .c  om
    String helperId = "__" + ClassUtils.getShortNameAsProperty(apiBindingType) + "ApiHelper";
    // TODO: Make the bean IDs here configurable.
    BeanDefinition helperBD = BeanDefinitionBuilder.genericBeanDefinition(apiHelperClass)
            .addConstructorArgReference("usersConnectionRepository").addConstructorArgReference("userIdSource")
            .getBeanDefinition();
    registry.registerBeanDefinition(helperId, helperBD);

    if (logger.isDebugEnabled()) {
        logger.debug("Creating API Binding bean for " + ClassUtils.getShortName(apiBindingType));
    }
    BeanDefinition bindingBD = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
    bindingBD.setFactoryBeanName(helperId);
    bindingBD.setFactoryMethodName("getApi");
    bindingBD.setScope("request");
    BeanDefinitionHolder scopedProxyBDH = ScopedProxyUtils.createScopedProxy(
            new BeanDefinitionHolder(bindingBD, ClassUtils.getShortNameAsProperty(apiBindingType)), registry,
            false);
    registry.registerBeanDefinition(scopedProxyBDH.getBeanName(), scopedProxyBDH.getBeanDefinition());
    return scopedProxyBDH.getBeanDefinition();
}

From source file:org.springframework.social.config.support.ProviderConfigurationSupport.java

private BeanDefinition registerApiBindingBean(BeanDefinitionRegistry registry,
        Class<? extends ApiHelper<?>> apiHelperClass, Class<?> apiBindingType,
        Map<String, Object> allAttributes) {
    if (logger.isDebugEnabled()) {
        logger.debug("Registering API Helper bean for " + ClassUtils.getShortName(apiBindingType));
    }//from w  w  w . j av a  2s .com
    String helperId = "__" + ClassUtils.getShortNameAsProperty(apiBindingType) + "ApiHelper";
    // TODO: Make the bean IDs here configurable.
    BeanDefinition helperBD = getApiHelperBeanDefinitionBuilder(allAttributes).getBeanDefinition();
    registry.registerBeanDefinition(helperId, helperBD);

    if (logger.isDebugEnabled()) {
        logger.debug("Creating API Binding bean for " + ClassUtils.getShortName(apiBindingType));
    }
    BeanDefinition bindingBD = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
    bindingBD.setFactoryBeanName(helperId);
    bindingBD.setFactoryMethodName("getApi");
    bindingBD.setScope("request");
    BeanDefinitionHolder scopedProxyBDH = ScopedProxyUtils.createScopedProxy(
            new BeanDefinitionHolder(bindingBD, ClassUtils.getShortNameAsProperty(apiBindingType)), registry,
            false);
    registry.registerBeanDefinition(scopedProxyBDH.getBeanName(), scopedProxyBDH.getBeanDefinition());
    return scopedProxyBDH.getBeanDefinition();
}