--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressTask.java 2016/01/28 10:27:13 2856 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressTask.java 2016/03/29 20:36:40 2994 @@ -1,17 +1,25 @@ -package dk.daoas.adressevedligehold; +package dk.daoas.adressevedligehold.fileupload; import org.apache.commons.lang3.exception.ExceptionUtils; +import dk.daoas.adressevedligehold.MailSender; +import dk.daoas.adressevedligehold.ReloadTask; +import dk.daoas.adressevedligehold.afstandandenrute.AfstandAndenRuteTask; import dk.daoas.adressevedligehold.tasks.Task; +import dk.daoas.adressevedligehold.tasks.TaskLogger; import dk.daoas.adressevedligehold.util.TimingHelper; /* - * TODO: trigger indlæsning * */ public class AddressTask extends Task { + private TaskLogger logger = TaskLogger.getInstance(); + + private String distributor; + private String filename; + AddressSource source; boolean writeBack; @@ -19,6 +27,9 @@ this.source = source; this.writeBack = writeBack; + + this.distributor = source.getDistributor(); + this.filename = source.getFilename(); } @@ -29,13 +40,13 @@ try { TimingHelper timer = new TimingHelper(); - System.out.println("Validating Source"); + logger.info("Validating Source"); source.validate(); - System.out.println("Reading data from DB"); + logger.info("Reading data from DB"); AddressManager addrManager = new AddressManager(); - System.out.println("Data is ready"); + logger.info("Data is ready"); EntryUgedage ugedage = new EntryUgedage(); //saml op på hvilke ugedage der er blevet behandlet @@ -63,10 +74,21 @@ addrManager.dumpChanged(); } - AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack); + AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack, addrManager.getDuplicateCount() ); report.sendRapport(); + if (writeBack) { + manager.submitTask( new ReloadTask("Indlaesning/" + source.getDistributor()) ); + + + if (source.calculateDistances()) { + Task tsk = new AfstandAndenRuteTask(source.getDistributor(), AfstandAndenRuteTask.INCREMENTAL); + manager.submitTask( tsk ); + } + } + + } catch(Exception e) { @@ -75,16 +97,17 @@ body += "

"; body += "Exception:
"; body += ExceptionUtils.getStackTrace(e); - AddressReport.sendMail(subject, body); + MailSender.sendMail(subject, body); throw e; //rethrow exception } finally { try { - System.out.println("Cleaning up resources"); + logger.info("Cleaning up resources"); source.close(); + source = null; //and release it for garbace collection } catch (Exception e) { - System.out.println("Error during cleanup: " + e.getMessage() ); + logger.warning("Error during cleanup: ", e ); } } @@ -92,17 +115,17 @@ @Override public String getDescription() { - return "AddressTask " + source.getDistributor(); + return "AddressTask " + distributor; } @Override - public short getPercentCompleted() { - return 0; + public double getPercentCompleted() { + return -1; } @Override public String getDetail() { - return source.getFilename(); + return filename; } }