List of usage examples for org.springframework.data.repository.config RepositoryConfiguration getSource
@Nullable Object getSource();
From source file:org.agilemicroservices.autoconfigure.orm.RepositoryBeanDefinitionBuilder.java
/** * Builds a new {@link BeanDefinitionBuilder} from the given {@link BeanDefinitionRegistry} and {@link ResourceLoader} * .//w ww .ja v a 2 s .com * * @param configuration must not be {@literal null}. * @return */ public BeanDefinitionBuilder build(RepositoryConfiguration<?> configuration) { Assert.notNull(registry, "BeanDefinitionRegistry must not be null!"); Assert.notNull(resourceLoader, "ResourceLoader must not be null!"); String factoryBeanName = configuration.getRepositoryFactoryBeanName(); factoryBeanName = StringUtils.hasText(factoryBeanName) ? factoryBeanName : extension.getRepositoryFactoryClassName(); BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(factoryBeanName); builder.getRawBeanDefinition().setSource(configuration.getSource()); builder.addPropertyValue("repositoryInterface", configuration.getRepositoryInterface()); builder.addPropertyValue("queryLookupStrategyKey", configuration.getQueryLookupStrategyKey()); builder.addPropertyValue("lazyInit", configuration.isLazyInit()); builder.addPropertyValue("repositoryBaseClass", configuration.getRepositoryBaseClassName()); NamedQueriesBeanDefinitionBuilder definitionBuilder = new NamedQueriesBeanDefinitionBuilder( extension.getDefaultNamedQueryLocation()); if (StringUtils.hasText(configuration.getNamedQueriesLocation())) { definitionBuilder.setLocations(configuration.getNamedQueriesLocation()); } builder.addPropertyValue("namedQueries", definitionBuilder.build(configuration.getSource())); String customImplementationBeanName = registerCustomImplementation(configuration); if (customImplementationBeanName != null) { builder.addPropertyReference("customImplementation", customImplementationBeanName); builder.addDependsOn(customImplementationBeanName); } RootBeanDefinition evaluationContextProviderDefinition = new RootBeanDefinition( ExtensionAwareEvaluationContextProvider.class); evaluationContextProviderDefinition.setSource(configuration.getSource()); builder.addPropertyValue("evaluationContextProvider", evaluationContextProviderDefinition); return builder; }
From source file:org.agilemicroservices.autoconfigure.orm.RepositoryBeanDefinitionBuilder.java
private String registerCustomImplementation(RepositoryConfiguration<?> configuration) { String beanName = configuration.getImplementationBeanName(); // Already a bean configured? if (registry.containsBeanDefinition(beanName)) { return beanName; }/*from ww w . j a v a 2 s . c o m*/ AbstractBeanDefinition beanDefinition = implementationDetector.detectCustomImplementation( configuration.getImplementationClassName(), configuration.getBasePackages()); if (null == beanDefinition) { return null; } if (LOGGER.isDebugEnabled()) { LOGGER.debug("Registering custom repository implementation: " + configuration.getImplementationBeanName() + " " + beanDefinition.getBeanClassName()); } beanDefinition.setSource(configuration.getSource()); registry.registerBeanDefinition(beanName, beanDefinition); return beanName; }
From source file:org.springframework.data.repository.config.RepositoryBeanDefinitionParser.java
/** * Registers a generic repository factory bean for a bean with the given name and the provided configuration context. * /*from www . j av a 2s .c o m*/ * @param parser * @param name * @param context */ private void registerGenericRepositoryFactoryBean( RepositoryConfiguration<XmlRepositoryConfigurationSource> configuration, ParserContext parser) { RepositoryBeanDefinitionBuilder definitionBuilder = new RepositoryBeanDefinitionBuilder(configuration, extension); try { BeanDefinitionBuilder builder = definitionBuilder.build(parser.getRegistry(), parser.getReaderContext().getResourceLoader()); extension.postProcess(builder, configuration.getConfigurationSource()); AbstractBeanDefinition beanDefinition = builder.getBeanDefinition(); beanDefinition.setSource(configuration.getSource()); if (LOG.isDebugEnabled()) { LOG.debug("Registering repository: " + configuration.getBeanId() + " - Interface: " + configuration.getRepositoryInterface() + " - Factory: " + extension.getRepositoryFactoryClassName()); } BeanComponentDefinition definition = new BeanComponentDefinition(beanDefinition, configuration.getBeanId()); parser.registerBeanComponent(definition); } catch (RuntimeException e) { handleError(e, configuration.getConfigurationSource().getElement(), parser.getReaderContext()); } }