in extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportRouteCompletionProcessor.java [39:90]
public void process(Exchange exchange) throws Exception {
String importConfigId = null;
ImportConfiguration importConfigOneShot = (ImportConfiguration) exchange.getIn().getHeader(RouterConstants.HEADER_IMPORT_CONFIG_ONESHOT);
if (importConfigOneShot != null) {
importConfigId = importConfigOneShot.getItemId();
} else {
importConfigId = exchange.getFromRouteId();
}
ImportConfiguration importConfiguration = importConfigurationService.load(importConfigId);
long successCount = 0;
long failureCount = 0;
long ignoreCount = 0;
List<ImportLineError> errors = new ArrayList<ImportLineError>();
for (Object line : exchange.getIn().getBody(ArrayList.class)) {
if (line instanceof ProfileToImport) {
successCount++;
} else if (line instanceof ImportLineError) {
failureCount++;
if (errors.size() < execErrReportSize) {
errors.add(((ImportLineError) line));
}
} else {
ignoreCount++;
}
}
Integer nbTotal = (Integer) exchange.getProperty("CamelSplitSize");
if (importConfiguration.isHasHeader()) {
nbTotal--;
}
Map execution = new HashMap();
execution.put("date", ((Date) exchange.getProperty("CamelCreatedTimestamp")).getTime());
execution.put("totalLinesNb", nbTotal);
execution.put("successCount", successCount);
execution.put("failureCount", failureCount);
execution.put("errors", errors);
importConfiguration = (ImportConfiguration) RouterUtils.addExecutionEntry(importConfiguration, execution, executionsHistorySize);
//Set running to false, route is complete
if (failureCount > 0 && successCount > 0) {
importConfiguration.setStatus(RouterConstants.CONFIG_STATUS_COMPLETE_WITH_ERRORS);
} else if (failureCount > 0 && successCount == 0) {
importConfiguration.setStatus(RouterConstants.CONFIG_STATUS_COMPLETE_ERRORS);
} else if (failureCount == 0 && successCount > 0) {
importConfiguration.setStatus(RouterConstants.CONFIG_STATUS_COMPLETE_SUCCESS);
}
importConfigurationService.save(importConfiguration, false);
LOGGER.info("Processing route {} completed. completion date: {}.", exchange.getFromRouteId(), new Date());
}