r729 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util faxtomail-ui-swing/src/main/resources
Author: kmorin Date: 2014-12-12 15:05:59 +0000 (Fri, 12 Dec 2014) New Revision: 729 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/729 Log: use priorities in cache + add logs Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AbstractFaxToMailTopiaDao.java trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java trunk/faxtomail-ui-swing/src/main/resources/log4j2.xml Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AbstractFaxToMailTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AbstractFaxToMailTopiaDao.java 2014-12-12 12:51:00 UTC (rev 728) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AbstractFaxToMailTopiaDao.java 2014-12-12 15:05:59 UTC (rev 729) @@ -29,6 +29,8 @@ import java.util.List; import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.internal.AbstractTopiaDao; import org.nuiton.util.pagination.PaginationParameter; @@ -37,6 +39,8 @@ public abstract class AbstractFaxToMailTopiaDao<E extends TopiaEntity> extends AbstractTopiaDao<E> { + private static final Log log = LogFactory.getLog(AbstractFaxToMailTopiaDao.class); + /** Instance unique de Gson. (certainement pas le meilleur endroit pour la placer). */ public static final Gson GSON_INSTANCE = new Gson(); @@ -55,7 +59,27 @@ } public <K> List<K> find(String hql, Map<String, Object> hqlParameters, PaginationParameter pager) { + if (log.isDebugEnabled()) { + String params = ""; + for (String key : hqlParameters.keySet()) { + params += key + " : " + hqlParameters.get(key) + "\n"; + } + log.debug("find:\n\t" + hql + "\n\t" + params + "\t" + GSON_INSTANCE.toJson(pager)); + } return super.find(hql, hqlParameters, pager); } + /** only to log the query, in order to find why there is a java heap space exception */ + protected <O> List<O> findAll(String hql, Map<String, Object> hqlParameters) { + if (log.isDebugEnabled()) { + String params = ""; + for (String key : hqlParameters.keySet()) { + params += key + " : " + hqlParameters.get(key) + "\n"; + } + log.debug("findAll:\n\t" + hql + "\t" + params); + + } + return super.findAll(hql, hqlParameters); + } + } Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-12-12 12:51:00 UTC (rev 728) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-12-12 15:05:59 UTC (rev 729) @@ -536,8 +536,8 @@ //Email.PROPERTY_EMAIL_GROUP + "." + EmailGroup.PROPERTY_EMAIL ) + " WHERE E." + TopiaEntity.PROPERTY_TOPIA_ID + " in ( :topiaIdsForFetch_ )"; - if (log.isDebugEnabled()) { - log.debug("getEmailForFolder 2 - " + hqlForFetchStep2); + if (log.isTraceEnabled()) { + log.trace("getEmailForFolder 2 - " + hqlForFetchStep2); } // code copied from topia to perform search @@ -651,149 +651,6 @@ return result; } - public PaginationResult<Email> getEmailForFolder2(EmailFilter emailFilter, MailFolder folder, PaginationParameter pagination) { - long start = new Date().getTime(); - - Map<String, Object> args = new HashMap<>(); - String query = filteredDemandsOfFolderCondition(folder, emailFilter, args); - - // add same fecth liste as emailService#getEmailForFolder() - String hqlForFetchStep1 = "select E." + TopiaEntity.PROPERTY_TOPIA_ID + " FROM " + Email.class.getName() + " E " + query; - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 1 - " + hqlForFetchStep1); - } - String hqlForFetchStep2 = "select distinct E FROM " + Email.class.getName() + " E " + addAllFecthes( - Email.PROPERTY_PRIORITY, - Email.PROPERTY_DEMAND_TYPE, - Email.PROPERTY_CLIENT, - Email.PROPERTY_RANGE_ROW + "." + RangeRow.PROPERTY_RANGE, - Email.PROPERTY_WAITING_STATE, - Email.PROPERTY_TAKEN_BY, - Email.PROPERTY_REPLIES, - Email.PROPERTY_LAST_ATTACHMENT_OPENER -// Email.PROPERTY_ATTACHMENT -// Email.PROPERTY_HISTORY + "." + History.PROPERTY_FAX_TO_MAIL_USER -// Email.PROPERTY_HISTORY + "." + History.PROPERTY_FIELDS_JSON -// Email.PROPERTY_EMAIL_GROUP + "." + EmailGroup.PROPERTY_EMAIL + "." + Email.PROPERTY_ATTACHMENT, -// Email.PROPERTY_EMAIL_GROUP + "." + EmailGroup.PROPERTY_EMAIL + "." + Email.PROPERTY_MAIL_FOLDER - ) + " WHERE E." + TopiaEntity.PROPERTY_TOPIA_ID + " in ( :topiaIdsForFetch_ )"; - - if (log.isDebugEnabled()) { - log.debug("getEmailForFolder2 2 - " + hqlForFetchStep2); - } - - - // code copied from topia to perform search - long time = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 start query 1 : " + time); - } - - PaginationResult<String> pageResult = findPage(hqlForFetchStep1, args, pagination); - - long time2 = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 end query 1 : " + time2 + " (" + (time2 - time) + ")"); - } - - List<String> step1ResultTopiaIds = pageResult.getElements(); - - List<Email> sortedEntities; - if (CollectionUtils.isEmpty(step1ResultTopiaIds)) { - sortedEntities = Lists.newArrayList(); - } else { - Map<String, Object> step2Args = Maps.newHashMap(); - step2Args.put("topiaIdsForFetch_", step1ResultTopiaIds); - - time = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 start query 2 : " + time); - } - - List<Email> entities = forHql(hqlForFetchStep2, step2Args).findAll(); - - time2 = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 end query 2 : " + time2 + " (" + (time2 - time) + ")"); - } - sortedEntities = sortAccordingToIds(entities, step1ResultTopiaIds); - - long time3 = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 sort query 2 : " + time3 + " (" + (time3 - time2) + ")"); - } - } - - time = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 init results : " + time); - } - - PaginationResult<Email> result = PaginationResult.of(sortedEntities, pageResult.getCount(), pageResult.getCurrentPage()); - - time2 = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 after pagination results : " + time2 + " (" + (time2 - time) + ")"); - } - - //PaginationResult<Email> result = findPage(query.toString(), args, pagination); - - // manual fetch - // Email.PROPERTY_PRIORITY, - // Email.PROPERTY_DEMAND_TYPE, - // Email.PROPERTY_CLIENT, - // Email.PROPERTY_RANGE_ROW + "." + RangeRow.PROPERTY_RANGE, - // Email.PROPERTY_ETAT_ATTENTE, - // Email.PROPERTY_TAKEN_BY, - // Email.PROPERTY_REPLIES, -// Email.PROPERTY_ATTACHMENT, - // Email.PROPERTY_HISTORY + "." + History.PROPERTY_FAX_TO_MAIL_USER, - // Email.PROPERTY_HISTORY + "." + History.PROPERTY_FIELDS, - // Email.PROPERTY_EMAIL_GROUP + "." + EmailGroup.PROPERTY_EMAIL) - for (Email email : result.getElements()) { - //Hibernate.initialize(email.getPriority()); - //Hibernate.initialize(email.getDemandType()); - //Hibernate.initialize(email.getClient()); -// List<RangeRow> rangeRows = email.getRangeRow(); -// if (rangeRows != null) { -// for (RangeRow rangeRow : rangeRows) { -// Hibernate.initialize(rangeRow.getRange()); -// } -// } - //Hibernate.initialize(email.getWaitingState()); - //Hibernate.initialize(email.getTakenBy()); -// Hibernate.initialize(email.getReplies()); - Hibernate.initialize(email.getAttachment()); -// Collection<History> histories = email.getHistory(); -// if (histories != null) { -// for (History history : histories) { -// Hibernate.initialize(history.getFaxToMailUser()); -// Hibernate.initialize(history.getFields()); -// } -// } - EmailGroup emailGroup = email.getEmailGroup(); - if (emailGroup != null) { - Hibernate.initialize(emailGroup.getEmail()); - for (Email groupedEmail : emailGroup.getEmail()) { - // initialize folder of the grouped demand to transmit the grouped emails of the same folder - Hibernate.initialize(groupedEmail.getMailFolder()); - // initialize the attachments for the attachments in the replies - Hibernate.initialize(groupedEmail.getAttachment()); - } - } - } - - long time3 = new Date().getTime(); - if (log.isTraceEnabled()) { - log.trace("getEmailForFolder2 after hibernate initializing : " + time3 + " (" + (time3 - time2) + ")"); - } - if (log.isDebugEnabled()) { - log.debug("getEmailForFolder2 total : " + (time3 - start)); - } - - return result; - } - protected String filteredDemandsOfFolderCondition(MailFolder folder, EmailFilter emailFilter, Map<String, Object> args) { StringBuilder query = new StringBuilder(); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java 2014-12-12 12:51:00 UTC (rev 728) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java 2014-12-12 15:05:59 UTC (rev 729) @@ -164,7 +164,7 @@ addComboDataColumnToModel(columnModel, DemandeTableModel.COLUMN_IDENTIFIERS.get(columnName), getDecorator(Priority.class, null), - serviceContext.getReferentielService().getAllPriority()).setSortable(sortable); + getContext().getPriorityCache()).setSortable(sortable); } else if (MailField.ATTACHMENT.equals(columnName)) { addColumnToModel(columnModel, Modified: trunk/faxtomail-ui-swing/src/main/resources/log4j2.xml =================================================================== --- trunk/faxtomail-ui-swing/src/main/resources/log4j2.xml 2014-12-12 12:51:00 UTC (rev 728) +++ trunk/faxtomail-ui-swing/src/main/resources/log4j2.xml 2014-12-12 15:05:59 UTC (rev 729) @@ -45,8 +45,12 @@ <Loggers> <Logger name="com.franciaflex.faxtomail" level="info"/> - <!-- <Logger name="com.franciaflex.faxtomail.services" level="debug"/> --> + <Logger name="com.franciaflex.faxtomail.persistence" level="debug"/> + <Logger name="com.franciaflex.faxtomail.services" level="debug"/> + <!--<Logger name="org.hibernate.SQL" level="debug"/>--> + <!--<Logger name="org.hibernate.type" level="all"/>--> + <Root level="error"> <AppenderRef ref="Console" /> <AppenderRef ref="File" />
participants (1)
-
kmorin@users.forge.codelutin.com