List of usage examples for org.springframework.integration.jpa.config.xml JpaParserUtils getJpaParameterBeanDefinitions
public static ManagedList<BeanDefinition> getJpaParameterBeanDefinitions(Element jpaComponent, ParserContext parserContext)
From source file:org.springframework.integration.jpa.config.xml.JpaParserUtils.java
/** * Create a new {@link BeanDefinitionBuilder} for the class {@link JpaExecutor}. * Initialize the wrapped {@link JpaExecutor} with common properties. * * @param element Must not be null/*from ww w . jav a2 s .c om*/ * @param parserContext Must not be null * @return The BeanDefinitionBuilder for the JpaExecutor */ public static BeanDefinitionBuilder getJpaExecutorBuilder(final Element element, final ParserContext parserContext) { Assert.notNull(element, "The provided element must not be null."); Assert.notNull(parserContext, "The provided parserContext must not be null."); final Object source = parserContext.extractSource(element); final BeanDefinitionBuilder jpaExecutorBuilder = BeanDefinitionBuilder .genericBeanDefinition(JpaExecutor.class); int attributeCount = 0; final String entityManagerRef = element.getAttribute("entity-manager"); final String entityManagerFactoryRef = element.getAttribute("entity-manager-factory"); final String jpaOperationsRef = element.getAttribute("jpa-operations"); if (StringUtils.hasText(jpaOperationsRef)) { attributeCount++; jpaExecutorBuilder.addConstructorArgReference(jpaOperationsRef); } if (StringUtils.hasText(entityManagerRef)) { if (attributeCount > 0) { parserContext.getReaderContext().error("Exactly only one of the attributes 'entity-manager' or " + "'entity-manager-factory' or 'jpa-operations' must be be set.", source); } attributeCount++; jpaExecutorBuilder.addConstructorArgReference(entityManagerRef); } if (StringUtils.hasText(entityManagerFactoryRef)) { if (attributeCount > 0) { parserContext.getReaderContext().error("Exactly only one of the attributes 'entity-manager' or " + "'entity-manager-factory' or 'jpa-operations' must be be set.", source); } attributeCount++; jpaExecutorBuilder.addConstructorArgReference(entityManagerFactoryRef); } if (attributeCount == 0) { parserContext.getReaderContext().error("Exactly one of the attributes 'entity-manager' or " + "'entity-manager-factory' or 'jpa-operations' must be be set.", source); } final ManagedList<BeanDefinition> jpaParameterList = JpaParserUtils.getJpaParameterBeanDefinitions(element, parserContext); if (!jpaParameterList.isEmpty()) { jpaExecutorBuilder.addPropertyValue("jpaParameters", jpaParameterList); } IntegrationNamespaceUtils.setValueIfAttributeDefined(jpaExecutorBuilder, element, "entity-class"); IntegrationNamespaceUtils.setValueIfAttributeDefined(jpaExecutorBuilder, element, "jpa-query"); IntegrationNamespaceUtils.setValueIfAttributeDefined(jpaExecutorBuilder, element, "native-query"); IntegrationNamespaceUtils.setValueIfAttributeDefined(jpaExecutorBuilder, element, "named-query"); return jpaExecutorBuilder; }