List of usage examples for org.springframework.beans.factory.xml XmlReaderContext fireImportProcessed
public void fireImportProcessed(String importedResource, Resource[] actualResources, @Nullable Object source)
From source file:com.trigonic.utils.spring.beans.ImportBeanDefinitionParser.java
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { XmlReaderContext readerContext = parserContext.getReaderContext(); String primaryLocation = element.getAttribute(RESOURCE_ATTRIBUTE); if (!StringUtils.hasText(primaryLocation)) { readerContext.error("Resource location must not be empty", element); return null; }// www.j a v a 2s . c o m String alternateLocation = element.getAttribute(ALTERNATE_ATTRIBUTE); boolean optional = Boolean.parseBoolean(element.getAttribute(OPTIONAL_ATTRIBUTE)); String currentLocation = primaryLocation; try { Set<Resource> actualResources = ImportHelper.importResource(readerContext.getReader(), readerContext.getResource(), currentLocation); if (actualResources.isEmpty() && StringUtils.hasLength(alternateLocation)) { currentLocation = alternateLocation; actualResources = ImportHelper.importResource(readerContext.getReader(), readerContext.getResource(), currentLocation); } if (actualResources.isEmpty() && !optional) { readerContext.error("Primary location [" + primaryLocation + "]" + (alternateLocation == null ? "" : " and alternate location [" + alternateLocation + "]") + " are not optional", element); return null; } Resource[] actResArray = actualResources.toArray(new Resource[actualResources.size()]); readerContext.fireImportProcessed(primaryLocation, actResArray, readerContext.extractSource(element)); } catch (BeanDefinitionStoreException ex) { readerContext.error("Failed to import bean definitions from location [" + currentLocation + "]", element, ex); } return null; }