logger.warn("Failed to create InputStream, resource will be ignored: {}", input);
return null;
}
final PortalDataKey portalDataKey;
final BufferedXMLEventReader xmlEventReader;
try {
xmlEventReader = new BufferedXMLEventReader(this.xmlInputFactory.createXMLEventReader(fis), -1);
final StartElement rootElement = StaxUtils.getRootElement(xmlEventReader);
portalDataKey = new PortalDataKey(rootElement);
}
catch (Exception e) {
if (this.options != null && !this.options.isIngoreNonDataFiles()) {
throw new RuntimeException("Failed to parse: " + input, e);
}
logger.warn("Failed to parse resource, it will be ignored: {}", input);
return null;
}
finally {
IOUtils.closeQuietly(fis);
}
xmlEventReader.reset();
final IPortalDataType portalDataType = this.dataKeyTypes.get(portalDataKey);
if (portalDataType == null) {
Iterator<PortalDataKey> iter = dataKeyTypes.keySet().iterator();
StringBuffer potentialKeys = new StringBuffer();
potentialKeys.append("---------------- Potential Keys To Match -------------------");
while(iter.hasNext()) {
PortalDataKey key = iter.next();
potentialKeys.append(key + "\n");
}
logger.warn("{}No IPortalDataType configured for {}, the resource will be ignored: {}", potentialKeys, portalDataKey, input);
return null;
}
//Allow the PortalDataType to do any necessary post-processing of the input, needed as some types require extra work
final String resourceUri = ResourceUtils.getResourceUri(input);
final Set<PortalDataKey> processedPortalDataKeys = portalDataType.postProcessPortalDataKey(resourceUri, portalDataKey, xmlEventReader);
xmlEventReader.reset();
for (final PortalDataKey processedPortalDataKey : processedPortalDataKeys) {
//Add the PortalDataKey and File into the map
Queue<Resource> queue = this.dataToImport.get(processedPortalDataKey);
if (queue == null) {