This is an automated email from the git hooks/post-receive script. New commit to branch bugfix/CacheClients in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit b83015e5fb8aeca0a711b0040465b17155ac3718 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Thu Jun 2 18:12:58 2016 +0200 Use company as key in clients cache --- .../faxtomail/services/service/ClientService.java | 6 +++++- .../services/service/ClientServiceImpl.java | 23 ++++++++++++++-------- .../faxtomail/ui/swing/FaxToMailUIContext.java | 14 +++++++------ 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java index 4e724ea..5d06b49 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientService.java @@ -41,9 +41,13 @@ public interface ClientService extends FaxToMailService { Client getClientForCode(String code, String company); + String getCompanyForFolder(MailFolder folder); + List<Client> getClientsForFolder(MailFolder folder); - long getClientsCountForFolder(MailFolder folder); + List<Client> getClientsForCompany(String company); + + long getClientsCountForCompany(String company); void updateNewClients(); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientServiceImpl.java index 4b67500..abe86e1 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ClientServiceImpl.java @@ -149,26 +149,33 @@ public class ClientServiceImpl extends FaxToMailServiceSupport implements Client } @Override - public List<Client> getClientsForFolder(MailFolder folder) { + public String getCompanyForFolder(MailFolder folder) { while (!folder.isUseCurrentLevelCompany() && folder.getParent() != null) { folder = folder.getParent(); } String company = folder.getCompany(); - + return company; + } + + @Override + public List<Client> getClientsForFolder(MailFolder folder) { + String company = getCompanyForFolder(folder); + ClientTopiaDao clientDao = getPersistenceContext().getClientDao(); List<Client> result = clientDao.forCompanyEquals(company).findAll(); return result; } @Override - public long getClientsCountForFolder(MailFolder folder) { - while (!folder.isUseCurrentLevelCompany() && folder.getParent() != null) { - folder = folder.getParent(); - } - - String company = folder.getCompany(); + public List<Client> getClientsForCompany(String company) { + ClientTopiaDao clientDao = getPersistenceContext().getClientDao(); + List<Client> result = clientDao.forCompanyEquals(company).findAll(); + return result; + } + @Override + public long getClientsCountForCompany(String company) { ClientTopiaDao clientDao = getPersistenceContext().getClientDao(); long result = clientDao.forCompanyEquals(company).count(); return result; diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java index 82a144b..d30a2c3 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java @@ -232,7 +232,7 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes /** */ protected List<Contact> contactCache; - protected Map<MailFolder, List<Client>> clientsCache; + protected Map<String, List<Client>> clientsCache; protected EmailFilter emailFilter = new EmailFilter(); @@ -329,7 +329,7 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes faxToMailActionFactory = new FaxToMailActionFactory(); faxToMailActionEngine = new ApplicationActionEngine(faxToMailActionFactory); - clientsCache = new HashMap<MailFolder, List<Client>>(); + clientsCache = new HashMap<String, List<Client>>(); } @Override @@ -845,17 +845,19 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes FaxToMailServiceContext serviceContext = newServiceContext(); ClientService clientService = serviceContext.getClientService(); - List<Client> clients = clientsCache.get(folder); + String company = clientService.getCompanyForFolder(folder); + + List<Client> clients = clientsCache.get(company); if (clients != null) { - long size = clientService.getClientsCountForFolder(folder); + long size = clientService.getClientsCountForCompany(company); if (size != clients.size()) { clients = null; } } if (clients == null) { - clients = clientService.getClientsForFolder(folder); - clientsCache.put(folder, clients); + clients = clientService.getClientsForCompany(company); + clientsCache.put(company, clients); } return clients; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.