Search in sources :

Example 1 with BeanComponentDefinitionBuilder

use of org.springframework.data.config.BeanComponentDefinitionBuilder in project spring-data-mongodb by spring-projects.

the class GridFsTemplateParser method parseInternal.

/*
	 * (non-Javadoc)
	 * @see org.springframework.beans.factory.xml.AbstractBeanDefinitionParser#parseInternal(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext)
	 */
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanComponentDefinitionBuilder helper = new BeanComponentDefinitionBuilder(element, parserContext);
    String converterRef = element.getAttribute("converter-ref");
    String dbFactoryRef = element.getAttribute("db-factory-ref");
    String bucket = element.getAttribute("bucket");
    BeanDefinitionBuilder gridFsTemplateBuilder = BeanDefinitionBuilder.genericBeanDefinition(GridFsTemplate.class);
    if (StringUtils.hasText(dbFactoryRef)) {
        gridFsTemplateBuilder.addConstructorArgReference(dbFactoryRef);
    } else {
        gridFsTemplateBuilder.addConstructorArgReference(BeanNames.DB_FACTORY_BEAN_NAME);
    }
    if (StringUtils.hasText(converterRef)) {
        gridFsTemplateBuilder.addConstructorArgReference(converterRef);
    } else {
        gridFsTemplateBuilder.addConstructorArgReference(BeanNames.DEFAULT_CONVERTER_BEAN_NAME);
    }
    if (StringUtils.hasText(bucket)) {
        gridFsTemplateBuilder.addConstructorArgValue(bucket);
    }
    return (AbstractBeanDefinition) helper.getComponentIdButFallback(gridFsTemplateBuilder, BeanNames.GRID_FS_TEMPLATE_BEAN_NAME).getBeanDefinition();
}
Also used : BeanDefinitionBuilder(org.springframework.beans.factory.support.BeanDefinitionBuilder) AbstractBeanDefinition(org.springframework.beans.factory.support.AbstractBeanDefinition) BeanComponentDefinitionBuilder(org.springframework.data.config.BeanComponentDefinitionBuilder)

Example 2 with BeanComponentDefinitionBuilder

use of org.springframework.data.config.BeanComponentDefinitionBuilder in project spring-data-mongodb by spring-projects.

the class MongoDbFactoryParser method parseInternal.

/*
	 * (non-Javadoc)
	 * @see org.springframework.beans.factory.xml.AbstractBeanDefinitionParser#parseInternal(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext)
	 */
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    // Common setup
    BeanDefinitionBuilder dbFactoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(SimpleMongoDbFactory.class);
    setPropertyValue(dbFactoryBuilder, element, "write-concern", "writeConcern");
    BeanDefinition mongoUri = getMongoUri(element, parserContext);
    if (mongoUri != null) {
        dbFactoryBuilder.addConstructorArgValue(mongoUri);
        return getSourceBeanDefinition(dbFactoryBuilder, parserContext, element);
    }
    BeanComponentDefinitionBuilder helper = new BeanComponentDefinitionBuilder(element, parserContext);
    String mongoRef = element.getAttribute("mongo-ref");
    String dbname = element.getAttribute("dbname");
    // Defaulting
    if (StringUtils.hasText(mongoRef)) {
        dbFactoryBuilder.addConstructorArgReference(mongoRef);
    } else {
        dbFactoryBuilder.addConstructorArgValue(registerMongoBeanDefinition(element, parserContext));
    }
    dbFactoryBuilder.addConstructorArgValue(StringUtils.hasText(dbname) ? dbname : "db");
    BeanDefinitionBuilder writeConcernPropertyEditorBuilder = getWriteConcernPropertyEditorBuilder();
    BeanComponentDefinition component = helper.getComponent(writeConcernPropertyEditorBuilder);
    parserContext.registerBeanComponent(component);
    return (AbstractBeanDefinition) helper.getComponentIdButFallback(dbFactoryBuilder, BeanNames.DB_FACTORY_BEAN_NAME).getBeanDefinition();
}
Also used : BeanDefinitionBuilder(org.springframework.beans.factory.support.BeanDefinitionBuilder) AbstractBeanDefinition(org.springframework.beans.factory.support.AbstractBeanDefinition) BeanComponentDefinition(org.springframework.beans.factory.parsing.BeanComponentDefinition) AbstractBeanDefinition(org.springframework.beans.factory.support.AbstractBeanDefinition) BeanDefinition(org.springframework.beans.factory.config.BeanDefinition) BeanComponentDefinitionBuilder(org.springframework.data.config.BeanComponentDefinitionBuilder)

Example 3 with BeanComponentDefinitionBuilder

use of org.springframework.data.config.BeanComponentDefinitionBuilder in project spring-data-mongodb by spring-projects.

the class MappingMongoConverterParser method createIsNewStrategyFactoryBeanDefinition.

public static String createIsNewStrategyFactoryBeanDefinition(String mappingContextRef, ParserContext context, Element element) {
    BeanDefinitionBuilder mappingContextStrategyFactoryBuilder = BeanDefinitionBuilder.rootBeanDefinition(MappingContextIsNewStrategyFactory.class);
    mappingContextStrategyFactoryBuilder.addConstructorArgReference(mappingContextRef);
    BeanComponentDefinitionBuilder builder = new BeanComponentDefinitionBuilder(element, context);
    context.registerBeanComponent(builder.getComponent(mappingContextStrategyFactoryBuilder, IS_NEW_STRATEGY_FACTORY_BEAN_NAME));
    return IS_NEW_STRATEGY_FACTORY_BEAN_NAME;
}
Also used : BeanDefinitionBuilder(org.springframework.beans.factory.support.BeanDefinitionBuilder) BeanComponentDefinitionBuilder(org.springframework.data.config.BeanComponentDefinitionBuilder)

Example 4 with BeanComponentDefinitionBuilder

use of org.springframework.data.config.BeanComponentDefinitionBuilder in project spring-data-mongodb by spring-projects.

the class MappingMongoConverterParser method potentiallyCreateMappingContext.

public static String potentiallyCreateMappingContext(Element element, ParserContext parserContext, BeanDefinition conversionsDefinition, String converterId) {
    String ctxRef = element.getAttribute("mapping-context-ref");
    if (StringUtils.hasText(ctxRef)) {
        return ctxRef;
    }
    BeanComponentDefinitionBuilder componentDefinitionBuilder = new BeanComponentDefinitionBuilder(element, parserContext);
    BeanDefinitionBuilder mappingContextBuilder = BeanDefinitionBuilder.genericBeanDefinition(MongoMappingContext.class);
    Set<String> classesToAdd = getInititalEntityClasses(element);
    if (classesToAdd != null) {
        mappingContextBuilder.addPropertyValue("initialEntitySet", classesToAdd);
    }
    if (conversionsDefinition != null) {
        AbstractBeanDefinition simpleTypesDefinition = new GenericBeanDefinition();
        simpleTypesDefinition.setFactoryBeanName("customConversions");
        simpleTypesDefinition.setFactoryMethodName("getSimpleTypeHolder");
        mappingContextBuilder.addPropertyValue("simpleTypeHolder", simpleTypesDefinition);
    }
    parseFieldNamingStrategy(element, parserContext.getReaderContext(), mappingContextBuilder);
    ctxRef = converterId == null || DEFAULT_CONVERTER_BEAN_NAME.equals(converterId) ? MAPPING_CONTEXT_BEAN_NAME : converterId + "." + MAPPING_CONTEXT_BEAN_NAME;
    parserContext.registerBeanComponent(componentDefinitionBuilder.getComponent(mappingContextBuilder, ctxRef));
    return ctxRef;
}
Also used : GenericBeanDefinition(org.springframework.beans.factory.support.GenericBeanDefinition) BeanDefinitionBuilder(org.springframework.beans.factory.support.BeanDefinitionBuilder) AbstractBeanDefinition(org.springframework.beans.factory.support.AbstractBeanDefinition) BeanComponentDefinitionBuilder(org.springframework.data.config.BeanComponentDefinitionBuilder)

Example 5 with BeanComponentDefinitionBuilder

use of org.springframework.data.config.BeanComponentDefinitionBuilder in project spring-data-mongodb by spring-projects.

the class MongoClientParser method parse.

/*
	 * (non-Javadoc)
	 * @see org.springframework.beans.factory.xml.BeanDefinitionParser#parse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext)
	 */
public BeanDefinition parse(Element element, ParserContext parserContext) {
    Object source = parserContext.extractSource(element);
    String id = element.getAttribute("id");
    BeanComponentDefinitionBuilder helper = new BeanComponentDefinitionBuilder(element, parserContext);
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MongoClientFactoryBean.class);
    ParsingUtils.setPropertyValue(builder, element, "port", "port");
    ParsingUtils.setPropertyValue(builder, element, "host", "host");
    ParsingUtils.setPropertyValue(builder, element, "credentials", "credentials");
    MongoParsingUtils.parseMongoClientOptions(element, builder);
    MongoParsingUtils.parseReplicaSet(element, builder);
    String defaultedId = StringUtils.hasText(id) ? id : BeanNames.MONGO_BEAN_NAME;
    parserContext.pushContainingComponent(new CompositeComponentDefinition("Mongo", source));
    BeanComponentDefinition mongoComponent = helper.getComponent(builder, defaultedId);
    parserContext.registerBeanComponent(mongoComponent);
    BeanComponentDefinition serverAddressPropertyEditor = helper.getComponent(MongoParsingUtils.getServerAddressPropertyEditorBuilder());
    parserContext.registerBeanComponent(serverAddressPropertyEditor);
    BeanComponentDefinition writeConcernEditor = helper.getComponent(MongoParsingUtils.getWriteConcernPropertyEditorBuilder());
    parserContext.registerBeanComponent(writeConcernEditor);
    BeanComponentDefinition readPreferenceEditor = helper.getComponent(MongoParsingUtils.getReadPreferencePropertyEditorBuilder());
    parserContext.registerBeanComponent(readPreferenceEditor);
    BeanComponentDefinition credentialsEditor = helper.getComponent(MongoParsingUtils.getMongoCredentialPropertyEditor());
    parserContext.registerBeanComponent(credentialsEditor);
    parserContext.popAndRegisterContainingComponent();
    return mongoComponent.getBeanDefinition();
}
Also used : BeanDefinitionBuilder(org.springframework.beans.factory.support.BeanDefinitionBuilder) CompositeComponentDefinition(org.springframework.beans.factory.parsing.CompositeComponentDefinition) BeanComponentDefinition(org.springframework.beans.factory.parsing.BeanComponentDefinition) BeanComponentDefinitionBuilder(org.springframework.data.config.BeanComponentDefinitionBuilder)

Aggregations

BeanDefinitionBuilder (org.springframework.beans.factory.support.BeanDefinitionBuilder)6 BeanComponentDefinitionBuilder (org.springframework.data.config.BeanComponentDefinitionBuilder)6 AbstractBeanDefinition (org.springframework.beans.factory.support.AbstractBeanDefinition)4 BeanComponentDefinition (org.springframework.beans.factory.parsing.BeanComponentDefinition)3 BeanDefinition (org.springframework.beans.factory.config.BeanDefinition)1 CompositeComponentDefinition (org.springframework.beans.factory.parsing.CompositeComponentDefinition)1 GenericBeanDefinition (org.springframework.beans.factory.support.GenericBeanDefinition)1