From 8824c9a24af9d2bb5b4137020bd5aeead7a8f580 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 11 Feb 2013 14:03:54 +0100 Subject: [PATCH] tim-connector: Avoid to load all workers to import/export timesheets from/to Tim Maybe it's not needed to get all workers, so the call to findAll has been changed by findByCode. Moreover, it was using code in ExportTimesheetsToTim and NIF in ImportRosterFromTim which was not coherent, so it has been changed to use code in both places. FEA: ItEr77S16JiraAndTimConnectorContributionIntegration --- .../importers/ExportTimesheetsToTim.java | 33 ++++-------------- .../importers/ImportRosterFromTim.java | 34 ++++--------------- 2 files changed, 14 insertions(+), 53 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java b/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java index 9bdbb3ad0..c4e7a7c60 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/ExportTimesheetsToTim.java @@ -32,6 +32,7 @@ import org.libreplan.business.common.IAdHocTransactionService; import org.libreplan.business.common.IOnTransaction; import org.libreplan.business.common.daos.IAppPropertiesDAO; import org.libreplan.business.common.daos.IConfigurationDAO; +import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.orders.daos.IOrderDAO; import org.libreplan.business.orders.daos.IOrderSyncInfoDAO; import org.libreplan.business.orders.entities.Order; @@ -81,8 +82,6 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { @Autowired private IAdHocTransactionService adHocTransactionService; - private List workers; - @Autowired private IAppPropertiesDAO appPropertiesDAO; @@ -138,12 +137,6 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { private boolean exportTimesheets(String productCode, Order order, Map appProperties) { - workers = workerDAO.findAll(); - if (workers == null || workers.isEmpty()) { - LOG.warn("No workers found!"); - return false; - } - String url = appProperties.get("Server"); String userName = appProperties.get("Username"); String password = appProperties.get("Password"); @@ -240,9 +233,12 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { */ private TimeRegistrationDTO createExportTimeRegistration(String productCode, WorkReportLine workReportLine) { - Worker worker = getWorker(workReportLine.getResource().getCode()); - if (worker == null) { - LOG.warn("Worker not found!"); + Worker worker; + String workerCode = workReportLine.getResource().getCode(); + try { + worker = workerDAO.findByCode(workerCode); + } catch (InstanceNotFoundException e) { + LOG.warn("Worker \"" + workerCode + "\" not found!"); return null; } @@ -271,21 +267,6 @@ public class ExportTimesheetsToTim implements IExportTimesheetsToTim { return timeRegistrationDTO; } - /** - * get worker based on the specified code - * - * @param code - * @return worker - */ - private Worker getWorker(String code) { - for (Worker worker : workers) { - if (worker.getCode().equals(code)) { - return worker; - } - } - return null; - } - @Override @Transactional(readOnly = true) public OrderSyncInfo getOrderLastSyncInfo(Order order) { diff --git a/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java b/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java index 1e151041f..acf149a71 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java +++ b/libreplan-webapp/src/main/java/org/libreplan/importers/ImportRosterFromTim.java @@ -99,8 +99,6 @@ public class ImportRosterFromTim implements IImportRosterFromTim { @Qualifier("subclass") private IBaseCalendarModel baseCalendarModel; - private List workers; - @Override @Transactional public void importRosters() { @@ -133,7 +131,6 @@ public class ImportRosterFromTim implements IImportRosterFromTim { @Override public Void execute() { - addAllWorkers(); List rosterExceptions = getRosterExceptions(rosterResponse); if (!rosterExceptions.isEmpty()) { updateCalendarException(rosterExceptions); @@ -159,7 +156,13 @@ public class ImportRosterFromTim implements IImportRosterFromTim { List rosterExceptions = new ArrayList(); for (Map.Entry> entry : map.entrySet()) { - Worker worker = getWorker(entry.getKey()); + Worker worker = null; + String workerCode = entry.getKey(); + try { + worker = workerDAO.findByCode(workerCode); + } catch (InstanceNotFoundException e) { + LOG.warn("Worker \"" + workerCode + "\" not found!"); + } if (worker != null) { List list = entry.getValue(); Collections.sort(list, new Comparator() { @@ -288,29 +291,6 @@ public class ImportRosterFromTim implements IImportRosterFromTim { } - /** - * adds all existing workers to workers list - */ - private void addAllWorkers() { - workers = workerDAO.findAll(); - } - - /** - * returns {@link Worker} for the specified nif - * - * @param nif - * the worker's nif - * @return Worker if found, otherwise null - */ - private Worker getWorker(String nif) { - for (Worker worker : workers) { - if (worker.getNif().equals(nif)) { - return worker; - } - } - return null; - } - /** * creates and returns {@link RosterRequestDTO} *