public BeanDefinition parse(Element element, ParserContext parser) { try { XmlRepositoryConfigurationSource configSource = new XmlRepositoryConfigurationSource(element, parser); for (RepositoryConfiguration<XmlRepositoryConfigurationSource> config : extension.getRepositoryConfigurations( configSource, parser.getReaderContext().getResourceLoader())) { registerGenericRepositoryFactoryBean(config, parser); } extension.registerBeansForRoot(parser.getRegistry(), configSource); } catch (RuntimeException e) { handleError(e, element, parser.getReaderContext()); } return null; }
@Nullable public BeanDefinition parse(Element element, ParserContext parser) { XmlReaderContext readerContext = parser.getReaderContext(); try { ResourceLoader resourceLoader = ConfigurationUtils.getRequiredResourceLoader(readerContext); Environment environment = readerContext.getEnvironment(); BeanDefinitionRegistry registry = parser.getRegistry(); XmlRepositoryConfigurationSource configSource = new XmlRepositoryConfigurationSource(element, parser, environment); RepositoryConfigurationDelegate delegate = new RepositoryConfigurationDelegate(configSource, resourceLoader, environment); RepositoryConfigurationUtils.exposeRegistration(extension, registry, configSource); for (BeanComponentDefinition definition : delegate.registerRepositoriesIn(registry, extension)) { readerContext.fireComponentRegistered(definition); } } catch (RuntimeException e) { handleError(e, element, readerContext); } return null; }