r545 - in trunk: faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search
Author: echatellier Date: 2014-08-13 15:29:36 +0200 (Wed, 13 Aug 2014) New Revision: 545 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/545 Log: Add referenteil cache Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielService.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielServiceImpl.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielService.java 2014-08-13 12:19:21 UTC (rev 544) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielService.java 2014-08-13 13:29:36 UTC (rev 545) @@ -52,8 +52,6 @@ Map<String, Long> getEtatAttentesUsage(); - List<Client> getAllClients(); - List<Client> importClients(InputStream inputStream); List<EmailAccount> importEmailAccounts(InputStream inputStream); Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielServiceImpl.java 2014-08-13 12:19:21 UTC (rev 544) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ReferentielServiceImpl.java 2014-08-13 13:29:36 UTC (rev 545) @@ -100,12 +100,6 @@ } @Override - public List<Client> getAllClients() { - ClientTopiaDao dao = getPersistenceContext().getClientDao(); - return dao.findAll(); - } - - @Override public List<Client> importClients(InputStream inputStream) { List<Client> result = new ArrayList<>(); ClientTopiaDao dao = getPersistenceContext().getClientDao(); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2014-08-13 12:19:21 UTC (rev 544) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2014-08-13 13:29:36 UTC (rev 545) @@ -38,8 +38,6 @@ import javax.swing.JFrame; import javax.swing.JOptionPane; -import com.franciaflex.faxtomail.services.service.InitFaxToMailServiceImpl; - import jaxx.runtime.swing.editor.bean.BeanDoubleList; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import jaxx.runtime.swing.session.BeanDoubleListState; @@ -61,7 +59,6 @@ import org.nuiton.i18n.init.DefaultI18nInitializer; import org.nuiton.jaxx.application.ApplicationBusinessException; import org.nuiton.jaxx.application.ApplicationConfiguration; -import org.nuiton.jaxx.application.ApplicationTechnicalException; import org.nuiton.jaxx.application.swing.ApplicationUIContext; import org.nuiton.jaxx.application.swing.action.ApplicationActionEngine; import org.nuiton.jaxx.application.swing.action.ApplicationActionFactory; @@ -71,11 +68,17 @@ import com.franciaflex.faxtomail.FaxToMailConfiguration; import com.franciaflex.faxtomail.persistence.RessourceClassLoader; +import com.franciaflex.faxtomail.persistence.entities.DemandType; +import com.franciaflex.faxtomail.persistence.entities.EtatAttente; import com.franciaflex.faxtomail.persistence.entities.FaxToMailTopiaApplicationContext; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import com.franciaflex.faxtomail.persistence.entities.Priority; +import com.franciaflex.faxtomail.persistence.entities.Range; import com.franciaflex.faxtomail.services.FaxToMailServiceContext; import com.franciaflex.faxtomail.services.service.InitFaxToMailService; +import com.franciaflex.faxtomail.services.service.ReferentielService; +import com.franciaflex.faxtomail.services.service.UserService; import com.franciaflex.faxtomail.services.service.ldap.AuthenticationException; import com.franciaflex.faxtomail.ui.swing.content.MainUI; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; @@ -185,6 +188,17 @@ protected SearchUIModel search; + /** Active user cache. */ + protected List<FaxToMailUser> faxtomailUserCache; + /** Etat attente cache. */ + protected List<EtatAttente> etatAttenteCache; + /** Demand type cache. */ + protected List<DemandType> demandTypeCache; + /** Priority cache. */ + protected List<Priority> priorityCache; + /** Range cache. */ + protected List<Range> rangeCache; + public static FaxToMailUIContext newContext(FaxToMailConfiguration config) { Preconditions.checkNotNull(config); Preconditions.checkState(applicationContext == null, @@ -338,8 +352,8 @@ // try to autologin user from username of current X session autologinUser(); - //Configuration config = getConfigurationService().getConfiguration(); - //setFaxToMailConfiguration(config); + // init cache + initContextCache(); //--------------------------------------------------------------------// // init action UI @@ -348,6 +362,25 @@ } /** + * Init list used in application wide scope and put it in cache. + */ + protected void initContextCache() { + if (log.isInfoEnabled()) { + log.info("Adding referentiel in cache"); + } + FaxToMailServiceContext serviceContext = newServiceContext(); + // referentiel + ReferentielService referentielService = serviceContext.getReferentielService(); + setRangeCache(referentielService.getAllRange()); + setDemandTypeCache(referentielService.getAllDemandType()); + setEtatAttenteCache(referentielService.getAllEtatAttente()); + setPriorityCache(referentielService.getAllPriority()); + // users + UserService userService = serviceContext.getUserService(); + setFaxtomailUserCache(userService.getAllActiveUsers()); + } + + /** * Recupere l'utilisateur connecté ou demande les identifiants à l'utilisateur. */ protected void autologinUser() { @@ -419,10 +452,6 @@ setLocale(config.getI18nLocale()); -// boolean dbExists = config.isDbExists(); -// -// setDbExist(dbExists); - // save back to config saveContextToConfig(); @@ -479,10 +508,6 @@ } //------------------------------------------------------------------------// - //-- DataContext methods --// - //------------------------------------------------------------------------// - - //------------------------------------------------------------------------// //-- Config methods --// //------------------------------------------------------------------------// @@ -662,4 +687,44 @@ public void setSearch(SearchUIModel search) { this.search = search; } + + public List<FaxToMailUser> getFaxtomailUserCache() { + return faxtomailUserCache; + } + + public void setFaxtomailUserCache(List<FaxToMailUser> faxtomailUserCache) { + this.faxtomailUserCache = faxtomailUserCache; + } + + public List<EtatAttente> getEtatAttenteCache() { + return etatAttenteCache; + } + + public void setEtatAttenteCache(List<EtatAttente> etatAttenteCache) { + this.etatAttenteCache = etatAttenteCache; + } + + public List<DemandType> getDemandTypeCache() { + return demandTypeCache; + } + + public void setDemandTypeCache(List<DemandType> demandTypeCache) { + this.demandTypeCache = demandTypeCache; + } + + public List<Priority> getPriorityCache() { + return priorityCache; + } + + public void setPriorityCache(List<Priority> priorityCache) { + this.priorityCache = priorityCache; + } + + public List<Range> getRangeCache() { + return rangeCache; + } + + public void setRangeCache(List<Range> rangeCache) { + this.rangeCache = rangeCache; + } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-08-13 12:19:21 UTC (rev 544) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-08-13 13:29:36 UTC (rev 545) @@ -135,17 +135,15 @@ }); MailFolder folder = model.getMailFolder(); - final FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - ReferentielService referentielService = serviceContext.getReferentielService(); - initBeanFilterableComboBox(ui.getPriorityComboBox(), referentielService.getAllPriority(), model.getPriority()); + initBeanFilterableComboBox(ui.getPriorityComboBox(), getContext().getPriorityCache(), model.getPriority()); initBeanFilterableComboBox(ui.getStatusComboBox(), Arrays.asList(DemandStatus.values()), model.getDemandStatus()); // utilisation des etats d'attente défini pour le dossier (si défini) List<DemandType> demandTypes = new ArrayList<DemandType>(); Collection<DemandType> folderDemandTypes = getDemandTypeForFolder(folder); if (CollectionUtils.isEmpty(folderDemandTypes)) { - demandTypes.addAll(referentielService.getAllDemandType()); + demandTypes.addAll(getContext().getDemandTypeCache()); } else { demandTypes.addAll(folderDemandTypes); } @@ -155,7 +153,7 @@ List<EtatAttente> etatAttentes = new ArrayList<EtatAttente>(); Collection<EtatAttente> folderEtatAttentes = getEtatAttenteForFolder(folder); if (CollectionUtils.isEmpty(folderEtatAttentes)) { - etatAttentes.addAll(referentielService.getAllEtatAttente()); + etatAttentes.addAll(getContext().getEtatAttenteCache()); } else { etatAttentes.addAll(folderEtatAttentes); } @@ -171,7 +169,7 @@ List<Range> ranges = new ArrayList<Range>(); Collection<Range> folderRanges = getRangeForFolder(folder); if (CollectionUtils.isEmpty(folderRanges)) { - ranges.addAll(referentielService.getAllRange()); + ranges.addAll(getContext().getRangeCache()); } else { ranges.addAll(folderRanges); } @@ -363,6 +361,7 @@ } else { filename = FaxToMailUIUtil.getEditedFileName(attachment.getOriginalFileName()); } + FaxToMailServiceContext serviceContext = getContext().newServiceContext(); Email email = serviceContext.getEmailService().addToHistory(topiaId, HistoryType.ATTACHMENT_OPENING, getContext().getCurrentUser(), @@ -376,6 +375,7 @@ public void onAttachmentEdited(Attachment attachment) { String topiaId = getModel().getTopiaId(); if (topiaId != null) { + FaxToMailServiceContext serviceContext = getContext().newServiceContext(); Email email = serviceContext.getEmailService().addToHistory(topiaId, HistoryType.ATTACHMENT_MODIFICATION, getContext().getCurrentUser(), Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java 2014-08-13 12:19:21 UTC (rev 544) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java 2014-08-13 13:29:36 UTC (rev 545) @@ -28,10 +28,7 @@ import com.franciaflex.faxtomail.persistence.entities.EmailFilter; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailField; -import com.franciaflex.faxtomail.services.FaxToMailServiceContext; -import com.franciaflex.faxtomail.services.service.ReferentielService; import com.franciaflex.faxtomail.ui.swing.actions.GroupAction; -import com.franciaflex.faxtomail.ui.swing.actions.SearchAction; import com.franciaflex.faxtomail.ui.swing.actions.SearchToGroupAction; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailDemandListHandler; @@ -116,10 +113,7 @@ public void afterInit(SearchToGroupUI ui) { initUI(ui); - FaxToMailServiceContext serviceContext = getContext().newServiceContext(); - ReferentielService referentielService = serviceContext.getReferentielService(); - - List<FaxToMailUser> users = serviceContext.getUserService().getAllActiveUsers(); + List<FaxToMailUser> users = getContext().getFaxtomailUserCache(); SearchUIModel model = getModel(); initBeanFilterableComboBox(ui.getTakenByComboBox(), users, @@ -141,17 +135,17 @@ model.getReplyBy()); initCheckBoxComboBox(ui.getDocTypeComboBox(), - referentielService.getAllDemandType(), + getContext().getDemandTypeCache(), model.getDemandType(), EmailFilter.PROPERTY_DEMAND_TYPE, true); initCheckBoxComboBox(ui.getPriorityComboBox(), - referentielService.getAllPriority(), + getContext().getPriorityCache(), model.getPriority(), EmailFilter.PROPERTY_PRIORITY, true); initCheckBoxComboBox(ui.getEtatAttenteComboBox(), - referentielService.getAllEtatAttente(), + getContext().getEtatAttenteCache(), model.getEtatAttente(), EmailFilter.PROPERTY_ETAT_ATTENTE, true); @@ -161,7 +155,7 @@ EmailFilter.PROPERTY_DEMAND_STATUS, false); initCheckBoxComboBox(ui.getGammeComboBox(), - referentielService.getAllRange(), + getContext().getRangeCache(), model.getGamme(), EmailFilter.PROPERTY_GAMME, false); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-08-13 12:19:21 UTC (rev 544) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-08-13 13:29:36 UTC (rev 545) @@ -48,7 +48,6 @@ import com.franciaflex.faxtomail.persistence.entities.EmailFilter; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailField; -import com.franciaflex.faxtomail.services.service.ReferentielService; import com.franciaflex.faxtomail.ui.swing.actions.SearchAction; import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeListAction; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; @@ -100,10 +99,8 @@ initUI(ui); - final ReferentielService referentielService = getContext().newServiceContext().getReferentielService(); - // this loading take 1,5 seconds - List<FaxToMailUser> users = getContext().newServiceContext().getUserService().getAllActiveUsers(); + List<FaxToMailUser> users = getContext().getFaxtomailUserCache(); SearchUIModel model = getModel(); initBeanFilterableComboBox(ui.getTakenByComboBox(), users, @@ -125,17 +122,17 @@ model.getReplyBy()); initCheckBoxComboBox(ui.getDocTypeComboBox(), - referentielService.getAllDemandType(), + getContext().getDemandTypeCache(), model.getDemandType(), EmailFilter.PROPERTY_DEMAND_TYPE, true); initCheckBoxComboBox(ui.getPriorityComboBox(), - referentielService.getAllPriority(), + getContext().getPriorityCache(), model.getPriority(), EmailFilter.PROPERTY_PRIORITY, true); initCheckBoxComboBox(ui.getEtatAttenteComboBox(), - referentielService.getAllEtatAttente(), + getContext().getEtatAttenteCache(), model.getEtatAttente(), EmailFilter.PROPERTY_ETAT_ATTENTE, true); @@ -145,7 +142,7 @@ EmailFilter.PROPERTY_DEMAND_STATUS, false); initCheckBoxComboBox(ui.getGammeComboBox(), - referentielService.getAllRange(), + getContext().getRangeCache(), model.getGamme(), EmailFilter.PROPERTY_GAMME, false);
participants (1)
-
echatellier@users.forge.codelutin.com