branch bugfix/CacheClients updated (de3f2dc -> 8698a2d)
This is an automated email from the git hooks/post-receive script. New change to branch bugfix/CacheClients in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git from de3f2dc [jgitflow-maven-plugin]Updating develop poms back to pre merge state new 8698a2d Create cache on clients The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 8698a2d9b05a530bcd782ad8986bdf28c21680fe Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Thu Jun 2 16:46:07 2016 +0200 Create cache on clients Summary of changes: .../faxtomail/services/service/ClientService.java | 2 ++ .../services/service/ClientServiceImpl.java | 13 +++++++++++ .../faxtomail/ui/swing/FaxToMailUIContext.java | 25 ++++++++++++++++++++++ .../ui/swing/actions/ShowDemandeAction.java | 2 +- .../actions/OpenGroupedDemandAction.java | 3 ++- 5 files changed, 43 insertions(+), 2 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 8698a2d9b05a530bcd782ad8986bdf28c21680fe Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Thu Jun 2 16:46:07 2016 +0200 Create cache on clients --- .../faxtomail/services/service/ClientService.java | 2 ++ .../services/service/ClientServiceImpl.java | 13 +++++++++++ .../faxtomail/ui/swing/FaxToMailUIContext.java | 25 ++++++++++++++++++++++ .../ui/swing/actions/ShowDemandeAction.java | 2 +- .../actions/OpenGroupedDemandAction.java | 3 ++- 5 files changed, 43 insertions(+), 2 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 29c436a..4e724ea 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 @@ -43,6 +43,8 @@ public interface ClientService extends FaxToMailService { List<Client> getClientsForFolder(MailFolder folder); + long getClientsCountForFolder(MailFolder folder); + void updateNewClients(); List<Client> getAllClientsForUser(FaxToMailUser currentUser); 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 7382c76..4b67500 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 @@ -161,6 +161,19 @@ public class ClientServiceImpl extends FaxToMailServiceSupport implements Client return result; } + @Override + public long getClientsCountForFolder(MailFolder folder) { + while (!folder.isUseCurrentLevelCompany() && folder.getParent() != null) { + folder = folder.getParent(); + } + + String company = folder.getCompany(); + + ClientTopiaDao clientDao = getPersistenceContext().getClientDao(); + long result = clientDao.forCompanyEquals(company).count(); + return result; + } + /** * Récupère les information de la table NewClient pour mettre à jour la table Client. */ 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 e578793..82a144b 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 @@ -24,6 +24,7 @@ package com.franciaflex.faxtomail.ui.swing; import com.franciaflex.faxtomail.FaxToMailConfiguration; import com.franciaflex.faxtomail.persistence.RessourceClassLoader; +import com.franciaflex.faxtomail.persistence.entities.Client; import com.franciaflex.faxtomail.persistence.entities.DemandType; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailFilter; @@ -34,6 +35,7 @@ import com.franciaflex.faxtomail.persistence.entities.Priority; import com.franciaflex.faxtomail.persistence.entities.Range; import com.franciaflex.faxtomail.persistence.entities.WaitingState; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; +import com.franciaflex.faxtomail.services.service.ClientService; import com.franciaflex.faxtomail.services.service.InitFaxToMailService; import com.franciaflex.faxtomail.services.service.ReferentielService; import com.franciaflex.faxtomail.services.service.UserService; @@ -230,6 +232,8 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes /** */ protected List<Contact> contactCache; + protected Map<MailFolder, List<Client>> clientsCache; + protected EmailFilter emailFilter = new EmailFilter(); public static FaxToMailUIContext newContext(FaxToMailConfiguration config) { @@ -325,6 +329,7 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes faxToMailActionFactory = new FaxToMailActionFactory(); faxToMailActionEngine = new ApplicationActionEngine(faxToMailActionFactory); + clientsCache = new HashMap<MailFolder, List<Client>>(); } @Override @@ -836,6 +841,26 @@ public class FaxToMailUIContext extends AbstractBean implements Closeable, UIMes this.contactCache = contactCache; } + public List<Client> getClientsCache(MailFolder folder) { + FaxToMailServiceContext serviceContext = newServiceContext(); + ClientService clientService = serviceContext.getClientService(); + + List<Client> clients = clientsCache.get(folder); + if (clients != null) { + long size = clientService.getClientsCountForFolder(folder); + if (size != clients.size()) { + clients = null; + } + } + + if (clients == null) { + clients = clientService.getClientsForFolder(folder); + clientsCache.put(folder, clients); + } + + return clients; + } + public boolean isUseFolderCache() { return useFolderCache; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java index ba1abf9..3ac3491 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java @@ -182,7 +182,7 @@ public class ShowDemandeAction extends AbstractMainUIFaxToMailAction { } MailFolder folder = currentEmail.getMailFolder(); - List<Client> allowedClients = serviceContext.getClientService().getClientsForFolder(folder); + List<Client> allowedClients = getContext().getClientsCache(folder); currentEmail.setAllowedClients(allowedClients); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java index 1fb9d83..d1139dd 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/demandgroup/actions/OpenGroupedDemandAction.java @@ -169,7 +169,8 @@ public class OpenGroupedDemandAction extends AbstractFaxToMailAction<DemandeUIMo } - List<Client> allowedClients = serviceContext.getClientService().getClientsForFolder(folder); + + List<Client> allowedClients = getContext().getClientsCache(folder); demandToOpen.setAllowedClients(allowedClients); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm