/** * Executes an import by getting the parameters from the notification. * * @param notification the notification * @return the status of the import */ protected ImportJobStatus executeImport(final ImportNotification notification) { ImportJob importJob = notification.getImportJob(); // update the CSV file path with the local file path notification.setImportSource(getRemoteCsvFileName(notification.getImportSource())); // Validate again final ImportDataType importDataType = importService.findImportDataType(importJob.getImportDataTypeName()); if (importDataType == null) { throw new EpSystemException( "ImportJob specifies unknown importDataType " + importJob.getImportDataTypeName()); } ImportJobRunner importJobRunner = getImportJobRunner(importDataType.getImportJobRunnerBeanName()); importJobRunner.init(notification, notification.getProcessId()); updateTotalRowsNumber(importJobRunner.getTotalRows(), notification.getProcessId()); importJobStatusHandler.reportImportJobState( notification.getProcessId(), ImportJobState.RUNNING); // Start the runner. LOG.info("Launch import job runner: " + importJobRunner); importJobRunner.run(); return importJobStatusHandler.getImportJobStatus(notification.getProcessId()); }
/** * Process the validation by using the import job runner. * * @param notification the notification * @return a list of bad rows */ protected List<ImportBadRow> processValidation(final ImportNotification notification) { ImportJob importJob = notification.getImportJob(); // update the CSV file path with the local file path notification.setImportSource(getRemoteCsvFileName(notification.getImportSource())); // Validate again final ImportDataType importDataType = importService.findImportDataType(importJob.getImportDataTypeName()); if (importDataType == null) { throw new EpSystemException( "ImportJob specifies unknown importDataType " + importJob.getImportDataTypeName()); } ImportJobRunner importJobRunner = getImportJobRunner(importDataType.getImportJobRunnerBeanName()); importJobRunner.init(notification, notification.getProcessId()); return importJobRunner.validate(notification.getReportingLocale()); }