branch develop updated (1faf774 -> 545a265)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git from 1faf774 [jgitflow-maven-plugin]Updating develop poms back to pre merge state new dc420fd enregistrement des sociétés dans le dossier même si c'est hérité (moins de requêtes pour trouver les dossiers d'une société) new e7c54fa ajout de la société sur les dossiers de test new 12ab91a correction lenteurs recherche archives new 6b46d51 affichage des différentes parties text/html de l'email à la suite (refs #7714) new 1ed48c7 gestion du cas où plusieurs parties text/plain seraient dans le mail (refs #7714) new 60a69ed concaténation des différentes partie text/html de l'email pour la génération du pdf (fixes #7716) new 1cc9fab correction affichage mail dans élément new 06e6318 fixes #7724 Erreur à l'ouverture d'un élément quand l'email n'a pas de texte fixes #7725 Erreur quand on veut répondre à un email qui n'a pas de texte fixes #7726 Erreur à l'ouverture d'un email dont le code html n'est pas valide new 2cac808 encodage des urls des images dans les emails (fixes #7741, fixes #7740) new 4606185 fixes #7743 : Des emails se retrouvent sans groupe après groupage de mails déjà groupés new f40eba8 fix import new 545a265 add 3rd party The 12 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 545a2657a97e6b16c2c48f912b3f354c572f6c29 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:54:46 2015 +0100 add 3rd party commit f40eba8b869ebfa92b0492d2ddf24cfb95b20a9f Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:50:09 2015 +0100 fix import commit 460618564f13072b2926eaa37779af04b8058a2a Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 12:25:49 2015 +0100 fixes #7743 : Des emails se retrouvent sans groupe après groupage de mails déjà groupés commit 2cac8083c92361fbbadb2e6734043c6260d23a9c Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 19 17:31:15 2015 +0100 encodage des urls des images dans les emails (fixes #7741, fixes #7740) commit 06e63186a5a50ddc5e675ee326a73c41fa75a75b Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 16 15:09:26 2015 +0100 fixes #7724 Erreur à l'ouverture d'un élément quand l'email n'a pas de texte fixes #7725 Erreur quand on veut répondre à un email qui n'a pas de texte fixes #7726 Erreur à l'ouverture d'un email dont le code html n'est pas valide commit 1cc9fabbf07486148d7bfd279c5e1eca755351d4 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 18:05:59 2015 +0100 correction affichage mail dans élément commit 60a69ed926434eb528a3d3c88f90286baf442f48 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:58:56 2015 +0100 concaténation des différentes partie text/html de l'email pour la génération du pdf (fixes #7716) commit 1ed48c7fcc90f52fbca7413a63d1bb36ff845d3d Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:23:40 2015 +0100 gestion du cas où plusieurs parties text/plain seraient dans le mail (refs #7714) Conflicts: faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java commit 6b46d51cdd0baaeb42eeb6d6f3cf3948f7a7338a Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:10:48 2015 +0100 affichage des différentes parties text/html de l'email à la suite (refs #7714) Conflicts: faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java commit 12ab91ad0501a52c8378c64927f887022aea9c44 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:34:44 2015 +0100 correction lenteurs recherche archives commit e7c54fabb2fe15683b08f5f922bb1fd3cec57a17 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:26:34 2015 +0100 ajout de la société sur les dossiers de test commit dc420fd24f3925543c0e2fac665ebebeda083d86 Author: Kevin Morin <morin@codelutin.com> Date: Fri Oct 30 10:43:30 2015 +0100 enregistrement des sociétés dans le dossier même si c'est hérité (moins de requêtes pour trouver les dossiers d'une société) Summary of changes: .../persistence/entities/EmailTopiaDao.java | 10 +- .../src/main/resources/faxToMail.properties | 4 +- faxtomail-service/pom.xml | 5 + .../src/license/THIRD-PARTY.properties | 4 +- .../faxtomail/services/FaxToMailServiceUtils.java | 32 ++++ .../services/service/ConfigurationServiceImpl.java | 5 + .../faxtomail/services/service/EmailService.java | 4 +- .../services/service/EmailServiceImpl.java | 123 +++++++------- .../services/service/EmailServiceTest.java | 82 ++++++++-- .../services/service/InitTestDataImpl.java | 20 ++- .../ui/swing/content/demande/DemandeUI.css | 4 - .../ui/swing/content/demande/DemandeUI.jaxx | 6 +- .../ui/swing/content/demande/DemandeUIHandler.java | 4 +- .../ui/swing/content/demande/DemandeUIModel.java | 40 +++-- .../ui/swing/content/reply/ReplyFormUIHandler.java | 20 ++- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 180 ++++++++++++++------- .../src/license/THIRD-PARTY.properties | 4 +- .../faxtomail/web/job/MailFilterJob.java | 2 +- pom.xml | 7 + 19 files changed, 371 insertions(+), 185 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit dc420fd24f3925543c0e2fac665ebebeda083d86 Author: Kevin Morin <morin@codelutin.com> Date: Fri Oct 30 10:43:30 2015 +0100 enregistrement des sociétés dans le dossier même si c'est hérité (moins de requêtes pour trouver les dossiers d'une société) --- .../services/service/ConfigurationServiceImpl.java | 5 +++++ .../faxtomail/services/service/EmailServiceImpl.java | 16 ++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java index 0e89d40..20313f8 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java @@ -326,6 +326,11 @@ public class ConfigurationServiceImpl extends FaxToMailServiceSupport implements currentMailFolder.setParent(parent); + // set the parent's company if it is inherited + if (!currentMailFolder.isUseCurrentLevelCompany() && parent != null) { + currentMailFolder.setCompany(parent.getCompany()); + } + if (!currentMailFolder.isPersisted()) { currentMailFolder = dao.create(currentMailFolder); } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index 295f589..f16c517 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -990,14 +990,14 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe MailFolderTopiaDao mailFolderDao = getPersistenceContext().getMailFolderDao(); Collection<MailFolder> companyFolders = mailFolderDao.forCompanyEquals(company).findAll(); Set<MailFolder> archiveFolders = new HashSet<>(companyFolders); - for (MailFolder folder : companyFolders) { - Collection<MailFolder> children = folder.getChildren(); - if (children != null) { - for (MailFolder child : children) { - findCompanyFoldersChildren(child, archiveFolders); - } - } - } +// for (MailFolder folder : companyFolders) { +// Collection<MailFolder> children = folder.getChildren(); +// if (children != null) { +// for (MailFolder child : children) { +// findCompanyFoldersChildren(child, archiveFolders); +// } +// } +// } EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); return emailDao.findArchivedEmails(commandQuotationNumber, archiveFolders); -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit e7c54fabb2fe15683b08f5f922bb1fd3cec57a17 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:26:34 2015 +0100 ajout de la société sur les dossiers de test --- .../faxtomail/services/service/InitTestDataImpl.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java index 8e5bd20..81d5302 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java @@ -148,13 +148,15 @@ public class InitTestDataImpl extends FaxToMailServiceSupport implements InitTes // categories MailFolder chargesClientelle = folderDao.create(MailFolder.PROPERTY_NAME, "Chargés de clientèle", MailFolder.PROPERTY_PARENT, franciaflex, - MailFolder.PROPERTY_REPLY_ADDRESSES, Lists.newArrayList("no-reply@franciaflex.com")); + MailFolder.PROPERTY_REPLY_ADDRESSES, Lists.newArrayList("no-reply@franciaflex.com"), + MailFolder.PROPERTY_COMPANY, "FXCOMP"); franciaflex.addChildren(chargesClientelle); foldersByName.put(chargesClientelle.getName(), chargesClientelle); MailFolder sav = folderDao.create(MailFolder.PROPERTY_NAME, "SAV", MailFolder.PROPERTY_PARENT, franciaflex, MailFolder.PROPERTY_WAITING_STATES, waitingStates.subList(0, 1), + MailFolder.PROPERTY_COMPANY, "FXCOMP", MailFolder.PROPERTY_READ_RIGHT_GROUPS, groups23); franciaflex.addChildren(sav); foldersByName.put(sav.getName(), sav); @@ -163,33 +165,39 @@ public class InitTestDataImpl extends FaxToMailServiceSupport implements InitTes MailFolder cyrilFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Cyril", MailFolder.PROPERTY_PARENT, chargesClientelle, MailFolder.PROPERTY_WAITING_STATES, waitingStates.subList(1, 2), + MailFolder.PROPERTY_COMPANY, "FXCOMP", MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(cyril)); chargesClientelle.addChildren(cyrilFolder); foldersByName.put(cyrilFolder.getName(), cyrilFolder); MailFolder claireFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Claire", - MailFolder.PROPERTY_PARENT, chargesClientelle); + MailFolder.PROPERTY_PARENT, chargesClientelle, + MailFolder.PROPERTY_COMPANY, "FXCOMP"); chargesClientelle.addChildren(claireFolder); foldersByName.put(claireFolder.getName(), claireFolder); MailFolder agatheFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Agathe", MailFolder.PROPERTY_PARENT, chargesClientelle, - MailFolder.PROPERTY_WAITING_STATES, waitingStates.subList(2, 3)); + MailFolder.PROPERTY_WAITING_STATES, waitingStates.subList(2, 3), + MailFolder.PROPERTY_COMPANY, "FXCOMP"); chargesClientelle.addChildren(agatheFolder); foldersByName.put(agatheFolder.getName(), agatheFolder); MailFolder marcFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Marc", - MailFolder.PROPERTY_PARENT, sav); + MailFolder.PROPERTY_PARENT, sav, + MailFolder.PROPERTY_COMPANY, "FXCOMP"); sav.addChildren(marcFolder); foldersByName.put(marcFolder.getName(), marcFolder); MailFolder fredericFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Frédéric", - MailFolder.PROPERTY_PARENT, sav); + MailFolder.PROPERTY_PARENT, sav, + MailFolder.PROPERTY_COMPANY, "FXCOMP"); sav.addChildren(fredericFolder); foldersByName.put(fredericFolder.getName(), fredericFolder); MailFolder jeanneFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Jeanne", - MailFolder.PROPERTY_PARENT, sav); + MailFolder.PROPERTY_PARENT, sav, + MailFolder.PROPERTY_COMPANY, "FXCOMP"); sav.addChildren(jeanneFolder); foldersByName.put(jeanneFolder.getName(), jeanneFolder); -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 12ab91ad0501a52c8378c64927f887022aea9c44 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:34:44 2015 +0100 correction lenteurs recherche archives --- .../persistence/entities/EmailTopiaDao.java | 10 ++++----- .../services/service/EmailServiceImpl.java | 26 +--------------------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java index cf30a4a..68b036c 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java @@ -480,14 +480,14 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { return result; } - public Collection<Email> findArchivedEmails(String commandQuotationNumber, Collection<MailFolder> folders) { + public Collection<Email> findArchivedEmails(String commandQuotationNumber, String company) { StringBuilder query = new StringBuilder(); Map<String, Object> args = new HashMap<>(); Set<Email> result = new HashSet<>(); - query.append(newFromClause("E") + " WHERE E." + Email.PROPERTY_MAIL_FOLDER + " in (:folders)"); - args.put("folders", folders); + query.append(newFromClause("E") + " WHERE E." + Email.PROPERTY_MAIL_FOLDER + "." + MailFolder.PROPERTY_COMPANY + " = (:company)"); + args.put("company", company); query.append(" AND E." + Email.PROPERTY_DEMAND_STATUS + " = :archiveStatus"); args.put("archiveStatus", DemandStatus.ARCHIVED); @@ -502,7 +502,7 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { StringBuilder query1 = new StringBuilder(query); query1.append(" AND (EXISTS (FROM " + RangeRow.class.getName() + " RR WHERE RR in elements(E." + Email.PROPERTY_RANGE_ROW + ")"); - query1.append(" AND lower(RR." + RangeRow.PROPERTY_COMMAND_NUMBER + ") LIKE lower(:" + SearchFilter.PROPERTY_COMMAND_NB + "))"); + query1.append(" AND RR." + RangeRow.PROPERTY_COMMAND_NUMBER + " LIKE :" + SearchFilter.PROPERTY_COMMAND_NB + ")"); args.put(SearchFilter.PROPERTY_COMMAND_NB, "%" + commandQuotationNumber + "%"); @@ -511,7 +511,7 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { result.addAll(this.<Email>findAll(query1.toString(), args)); StringBuilder query2 = new StringBuilder(query); - query2.append(" AND (lower(E." + Email.PROPERTY_COMPANY_REFERENCE + ") LIKE lower(:" + SearchFilter.PROPERTY_COMMAND_NB + ")"); + query2.append(" AND (E." + Email.PROPERTY_COMPANY_REFERENCE + " LIKE :" + SearchFilter.PROPERTY_COMMAND_NB); query2.append(")"); result.addAll(this.<Email>findAll(query2.toString(), args)); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index f16c517..e3aa7d6 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -987,32 +987,8 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe Preconditions.checkArgument(StringUtils.isNotBlank(commandQuotationNumber)); Preconditions.checkArgument(StringUtils.isNotBlank(company)); - MailFolderTopiaDao mailFolderDao = getPersistenceContext().getMailFolderDao(); - Collection<MailFolder> companyFolders = mailFolderDao.forCompanyEquals(company).findAll(); - Set<MailFolder> archiveFolders = new HashSet<>(companyFolders); -// for (MailFolder folder : companyFolders) { -// Collection<MailFolder> children = folder.getChildren(); -// if (children != null) { -// for (MailFolder child : children) { -// findCompanyFoldersChildren(child, archiveFolders); -// } -// } -// } - EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); - return emailDao.findArchivedEmails(commandQuotationNumber, archiveFolders); - } - - protected void findCompanyFoldersChildren(MailFolder folder, Set<MailFolder> archiveFolders) { - if (!folder.isUseCurrentLevelCompany()) { - archiveFolders.add(folder); - Collection<MailFolder> children = folder.getChildren(); - if (children != null) { - for (MailFolder child : children) { - findCompanyFoldersChildren(child, archiveFolders); - } - } - } + return emailDao.findArchivedEmails(commandQuotationNumber, company); } @Override -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 6b46d51cdd0baaeb42eeb6d6f3cf3948f7a7338a Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:10:48 2015 +0100 affichage des différentes parties text/html de l'email à la suite (refs #7714) Conflicts: faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java --- .../ui/swing/content/demande/DemandeUI.css | 4 - .../ui/swing/content/demande/DemandeUI.jaxx | 6 +- .../ui/swing/content/demande/DemandeUIHandler.java | 4 +- .../ui/swing/content/demande/DemandeUIModel.java | 17 ++- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 145 ++++++++++++--------- 5 files changed, 98 insertions(+), 78 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css index 2dc88e5..31b1a9a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css @@ -202,10 +202,6 @@ JTextField, JXTable, BeanFilterableComboBox, #commentField, ButtonAttachment, Bu verticalAlignment: { SwingConstants.TOP }; } -#mailBodyField { - editable: false; -} - .text-row { layout: { new FlowLayout(FlowLayout.LEADING) }; } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx index 6c263be..1c7883d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx @@ -44,6 +44,7 @@ org.jdesktop.swingx.JXTitledPanel org.jdesktop.swingx.JXTable + javax.swing.BoxLayout javax.swing.ListSelectionModel javax.swing.SwingConstants @@ -319,8 +320,9 @@ <!--</row>--> <row> <cell weighty="1" columns="2"> - <JScrollPane id='mailBodyPane'> - <JTextPane id='mailBodyField'/> + <JScrollPane id='mailBodyScrollPane'> + <JPanel id="mailBodyPanel" layout="{new BoxLayout(mailBodyPanel, BoxLayout.PAGE_AXIS)}"> + </JPanel> </JScrollPane> </cell> </row> diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java index 71d12ed..0ee690f 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java @@ -213,8 +213,8 @@ public class DemandeUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, } initBeanFilterableComboBox(ui.getWaitingStateComboBox(), waitingStates, model.getWaitingState()); - JTextPane editor = ui.getMailBodyField(); - FaxToMailUIUtil.setEmailContentInTextPane(this, editor, model); + JPanel editorPanel = ui.getMailBodyPanel(); + FaxToMailUIUtil.setEmailContentInTextPane(this, model, editorPanel); // init table final JXTable table = ui.getRangeTable(); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java index 21a3a08..dbdea19 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java @@ -112,7 +112,7 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU protected boolean editable = true; - protected String htmlContent; + protected List<String> htmlContents; protected String plainContent; @@ -341,11 +341,11 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU return plainContent; } - public String getHtmlContent() { - if (htmlContent == null) { + public List<String> getHtmlContent() { + if (htmlContents == null) { decomposeEmail(); } - return htmlContent; + return htmlContents; } public void setOriginalEmail(OriginalEmail originalEmail) { @@ -975,14 +975,21 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU if (bp.isMimeType("text/plain")) { plainContent = content; + } else { - htmlContent = content; + if (htmlContents == null) { + htmlContents = new ArrayList<String>(); + } + + htmlContents.add(content); + } // if it is multipart part, decompose it } else if (bp.isMimeType("multipart/*")) { decomposeMultipartEmail(bp); } + } } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index 2637715..53e13a4 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -341,77 +341,21 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { return EDITABLE_EXTENSIONS.contains(extension.toUpperCase()); } - public static void setEmailContentInTextPane(DemandeUIHandler handler, JTextPane textPane, DemandeUIModel demandeUIModel) { - String content = demandeUIModel.getHtmlContent(); - if (content != null) { - textPane.setContentType("text/html"); - HTMLEditorKit htmlEditorKit = new HTMLEditorKit(); - textPane.setEditorKit(htmlEditorKit); - - textPane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, true); - Font font = new Font(Font.MONOSPACED, Font.PLAIN, 16); - textPane.setFont(font); - - textPane.addHyperlinkListener(new HyperlinkListener() { - @Override - public void hyperlinkUpdate(HyperlinkEvent e) { - if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { - FaxToMailUIUtil.openLink(e.getURL()); - } - } - }); - - // the meta tag makes the content is not displayed - content = content.replaceAll("<meta (.*?)>(</meta>)?", ""); - - if (log.isTraceEnabled()) { - log.trace("Content before mail = " + content); - } - - for (Attachment attachment : demandeUIModel.getAttachment()) { - String key = attachment.getContentId(); - if (key == null) { - key = attachment.getOriginalFileName(); - } + public static void setEmailContentInTextPane(DemandeUIHandler handler, + DemandeUIModel demandeUIModel, + JPanel textPanePanel) { - // get file content - forceAttachmentFileLoading(handler.getContext(), attachment); - AttachmentFile attachmentFile = attachment.getOriginalFile(); - File file = attachmentFile.getFile(); - - // replace the inline attachments with the extracted attachment file url - // match les patterns: - // <td background="cid:bg.gif" height="52"> - // <img border=0 src="cid:bg.gif" /> - // <img src='cid:5e9ef859-ea65-4f9b-a9fa-30d4a2c5837c' - content = content.replaceAll("(\\w+)=([\"'])cid:" + Pattern.quote(key) + "([\"'])", "$1=$2" + file.toURI() + "$3"); - - if (log.isDebugEnabled()) { - log.debug("Mapping attachment id " + key + " to file " + file.toURI()); - } - } + List<String> contents = demandeUIModel.getHtmlContent(); - if (log.isTraceEnabled()) { - log.trace("Content after mail = " + content); + if (contents != null) { + for (String content : contents) { + addHtmlTextPane(handler, demandeUIModel, textPanePanel, content); } } else { - content = demandeUIModel.getPlainContent(); - } - - try { - textPane.setText(content); - - } catch (RuntimeException e) { - if (log.isErrorEnabled()) { - log.error("error while setting content in text pane " + textPane, e); - } - - StyledEditorKit kit = new StyledEditorKit(); - textPane.setEditorKit(kit); - textPane.setContentType(kit.getContentType()); - + JTextPane textPane = new JTextPane(); textPane.setText(demandeUIModel.getPlainContent()); + textPanePanel.add(textPane); } } @@ -829,4 +773,75 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { return demandType != null && FaxToMailServiceUtils.contains(demandType.getRequiredFields(), MailField.RANGE_ROW); } + protected static void addHtmlTextPane(DemandeUIHandler handler, + DemandeUIModel demandeUIModel, + JPanel textPanePanel, + String content) { + + JTextPane textPane = createHtmlTextPane(); + + // the meta tag makes the content is not displayed + content = content.replaceAll("<meta (.*?)>(</meta>)?", ""); + + if (log.isTraceEnabled()) { + log.trace("Content before mail = " + content); + } + + for (Attachment attachment : demandeUIModel.getAttachment()) { + String key = attachment.getContentId(); + if (key == null) { + key = attachment.getOriginalFileName(); + } + + // get file content + forceAttachmentFileLoading(handler.getContext(), attachment); + AttachmentFile attachmentFile = attachment.getOriginalFile(); + File file = attachmentFile.getFile(); + + // replace the inline attachments with the extracted attachment file url + // match les patterns: + // <td background="cid:bg.gif" height="52"> + // <img border=0 src="cid:bg.gif" /> + // <img src='cid:5e9ef859-ea65-4f9b-a9fa-30d4a2c5837c' + content = content.replaceAll("(\\w+)=([\"'])cid:" + Pattern.quote(key) + "([\"'])", "$1=$2" + file.toURI() + "$3"); + + if (log.isDebugEnabled()) { + log.debug("Mapping attachment id " + key + " to file " + file.toURI()); + } + } + + if (log.isTraceEnabled()) { + log.trace("Content after mail = " + content); + } + + textPane.setText(content); + + textPanePanel.add(textPane); + + textPanePanel.add(Box.createVerticalStrut(3)); + } + + protected static JTextPane createHtmlTextPane() { + JTextPane textPane = new JTextPane(); + textPane.setEditable(false); + + textPane.setContentType("text/html"); + HTMLEditorKit htmlEditorKit = new HTMLEditorKit(); + textPane.setEditorKit(htmlEditorKit); + + textPane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, true); + Font font = new Font(Font.MONOSPACED, Font.PLAIN, 16); + textPane.setFont(font); + + textPane.addHyperlinkListener(new HyperlinkListener() { + @Override + public void hyperlinkUpdate(HyperlinkEvent e) { + if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { + FaxToMailUIUtil.openLink(e.getURL()); + } + } + }); + return textPane; + } + } -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 1ed48c7fcc90f52fbca7413a63d1bb36ff845d3d Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:23:40 2015 +0100 gestion du cas où plusieurs parties text/plain seraient dans le mail (refs #7714) Conflicts: faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java --- .../ui/swing/content/demande/DemandeUIModel.java | 21 ++++++++++++++------- .../ui/swing/content/reply/ReplyFormUIHandler.java | 15 +++++++++++---- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 11 ++++++++--- 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java index dbdea19..4aa7700 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java @@ -44,6 +44,7 @@ import com.franciaflex.faxtomail.services.FaxToMailServiceUtils; import com.franciaflex.faxtomail.ui.swing.content.attachment.AttachmentModelAware; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel; import com.google.common.collect.Lists; +import jaxx.runtime.JAXXUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; @@ -114,7 +115,7 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU protected List<String> htmlContents; - protected String plainContent; + protected List<String> plainContents; protected String subject; @@ -334,11 +335,11 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU return StringUtils.join(ccRecipients, ", "); } - public String getPlainContent() { - if (plainContent == null) { + public List<String> getPlainContent() { + if (plainContents == null) { decomposeEmail(); } - return plainContent; + return plainContents; } public List<String> getHtmlContent() { @@ -938,7 +939,10 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU } else if (message.isMimeType("text/*")) { String content = IOUtils.toString(message.getInputStream(), charset); - plainContent = content; + if (plainContents == null) { + plainContents = new ArrayList<String>(); + } + plainContents.add(JAXXUtil.getStringValue(content)); } } catch (Exception e) { @@ -946,7 +950,7 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU log.warn("error while parsing the original email content, may come from the imported archives", e); } //may comes from the imported archives - plainContent = getOriginalEmailContent(); + plainContents = Lists.newArrayList(getOriginalEmailContent()); toRecipients = Lists.newArrayList(getRecipient()); } } @@ -974,7 +978,10 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU String content = IOUtils.toString(bp.getInputStream(), charset); if (bp.isMimeType("text/plain")) { - plainContent = content; + if (plainContents == null) { + plainContents = new ArrayList<String>(); + } + plainContents.add(JAXXUtil.getStringValue(content)); } else { if (htmlContents == null) { diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java index 19f0fbd..360f6b9 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java @@ -38,7 +38,6 @@ import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.google.common.base.Strings; import com.google.common.collect.Lists; -import jaxx.runtime.JAXXUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.io.FileUtils; @@ -48,8 +47,16 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.swing.util.Cancelable; import org.nuiton.validator.bean.simple.SimpleBeanValidator; -import javax.swing.*; -import java.awt.*; +import javax.swing.ComboBoxEditor; +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JFileChooser; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.JTextPane; +import java.awt.Component; +import java.awt.Dimension; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -125,7 +132,7 @@ public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIMo model.setSubject(t("faxtomail.reply.subject", demand.getSubject())); - String plainContent = JAXXUtil.getStringValue(demand.getPlainContent()); + String plainContent = StringUtils.join(demand.getPlainContent(), "\n\n----------------\n\n"); String quotedReply = t("faxtomail.reply.message", decorate(demand.getReceptionDate()), demand.getSender(), diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index 53e13a4..d90fcd3 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -353,9 +353,14 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { } } else { - JTextPane textPane = new JTextPane(); - textPane.setText(demandeUIModel.getPlainContent()); - textPanePanel.add(textPane); + contents = demandeUIModel.getPlainContent(); + + for (String content : contents) { + JTextPane textPane = new JTextPane(); + textPane.setText(content); + textPanePanel.add(textPane); + textPanePanel.add(Box.createVerticalStrut(3)); + } } } -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 60a69ed926434eb528a3d3c88f90286baf442f48 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 16:58:56 2015 +0100 concaténation des différentes partie text/html de l'email pour la génération du pdf (fixes #7716) --- .../faxtomail/services/service/EmailService.java | 4 +- .../services/service/EmailServiceImpl.java | 81 ++++++++++++---------- .../faxtomail/web/job/MailFilterJob.java | 2 +- 3 files changed, 49 insertions(+), 38 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java index f8352a8..0005165 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java @@ -155,7 +155,7 @@ public interface EmailService extends FaxToMailService { * @param part the part to decompose * @throws Exception */ - String decomposeMultipartEmail(List<Attachment> attachments, Part part) throws Exception; + List<String> decomposeMultipartEmail(List<Attachment> attachments, Part part) throws Exception; /** * Retourne un input stream sur une piece jointe convertie ou pas. @@ -187,5 +187,5 @@ public interface EmailService extends FaxToMailService { * @return image attachment or {@code null} if content can't be converted * @throws IOException */ - Attachment convertHTMLToPdf(List<Attachment> attachments, String content, String name) throws IOException; + Attachment convertHTMLToPdf(List<Attachment> attachments, List<String> content, String name) throws IOException; } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index e3aa7d6..a007a99 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -1840,12 +1840,12 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe } @Override - public String decomposeMultipartEmail(List<Attachment> attachments, Part part) throws Exception { + public List<String> decomposeMultipartEmail(List<Attachment> attachments, Part part) throws Exception { return decomposeMultipartEmail(attachments, part, 0); } - protected String decomposeMultipartEmail(List<Attachment> attachments, Part part, int decomposingForwardedEmail) throws Exception { - String result = null; + protected List<String> decomposeMultipartEmail(List<Attachment> attachments, Part part, int decomposingForwardedEmail) throws Exception { + List<String> result = null; DataSource dataSource = part.getDataHandler().getDataSource(); MimeMultipart mimeMultipart = new MimeMultipart(dataSource); @@ -1875,12 +1875,15 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe } } else { - result = content; + if (result == null) { + result = new ArrayList<String>(); + } + result.add(content); } // if it is multipart part, decompose it } else if (bp.isMimeType("multipart/*")) { - String htmlContent = decomposeMultipartEmail(attachments, bp, decomposingForwardedEmail); + List<String> htmlContent = decomposeMultipartEmail(attachments, bp, decomposingForwardedEmail); if (htmlContent != null) { result = htmlContent; } @@ -1890,8 +1893,8 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe Attachment attachment = null; String fileName = t("faxtomail.email.content.attachment.forwardedFileName", decomposingForwardedEmail) + ".pdf"; try { - String content = decomposeMultipartEmail(attachments, bp, decomposingForwardedEmail); - if (StringUtils.isNotBlank(content)) { + List<String> content = decomposeMultipartEmail(attachments, bp, decomposingForwardedEmail); + if (content != null) { attachment = convertHTMLToPdf(attachments, content, fileName); } @@ -2083,44 +2086,52 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe } @Override - public Attachment convertHTMLToPdf(List<Attachment> attachments, String content, String name) throws IOException { + public Attachment convertHTMLToPdf(List<Attachment> attachments, List<String> contentList, String name) throws IOException { Attachment result = null; ByteArrayOutputStream os = new ByteArrayOutputStream(); Collection<File> fileToDelete = new ArrayList<File>(); + try { - content = content.replaceAll("<meta (.*?)>(</meta>)?", ""); - // remove the images whose sources are on the filesystem of the sender (yes, it happens...) - // cf #6996 - content = content.replaceAll("(\\w+)=([\"'])file://.*?([\"'])", ""); - - for (Attachment attachment : attachments) { - String key = attachment.getContentId(); - if (key == null) { - key = attachment.getOriginalFileName(); - } - // get file content - AttachmentFile attachmentFile = attachment.getOriginalFile(); - File file = attachmentFile.getFile(); - fileToDelete.add(file); + List<String> contents = new ArrayList<String>(); + + for (String content : contentList) { + content = content.replaceAll("<meta (.*?)>(</meta>)?", ""); + // remove the images whose sources are on the filesystem of the sender (yes, it happens...) + // cf #6996 + content = content.replaceAll("(\\w+)=([\"'])file://.*?([\"'])", ""); + + for (Attachment attachment : attachments) { + String key = attachment.getContentId(); + if (key == null) { + key = attachment.getOriginalFileName(); + } - // replace the inline attachments with the extracted attachment file url - // match les patterns: - // <td background="cid:bg.gif" height="52"> - // <img border=0 src="cid:bg.gif" /> - // <img src='cid:5e9ef859-ea65-4f9b-a9fa-30d4a2c5837c' - content = content.replaceAll("(\\w+)=([\"'])cid:" + Pattern.quote(key) + "([\"'])", "$1=$2" + file.toURI() + "$3"); + // get file content + AttachmentFile attachmentFile = attachment.getOriginalFile(); + File file = attachmentFile.getFile(); + fileToDelete.add(file); - if (log.isDebugEnabled()) { - log.debug("Mapping attachment id " + key + " to file " + file.toURI()); + // replace the inline attachments with the extracted attachment file url + // match les patterns: + // <td background="cid:bg.gif" height="52"> + // <img border=0 src="cid:bg.gif" /> + // <img src='cid:5e9ef859-ea65-4f9b-a9fa-30d4a2c5837c' + content = content.replaceAll("(\\w+)=([\"'])cid:" + Pattern.quote(key) + "([\"'])", "$1=$2" + file.toURI() + "$3"); + + if (log.isDebugEnabled()) { + log.debug("Mapping attachment id " + key + " to file " + file.toURI()); + } } - } - // remove the remaining cids whose attachment is not in the email (yes, it happens) - // cf #6996 - content = content.replaceAll("(\\w+)=([\"'])cid:.*?([\"'])", ""); + // remove the remaining cids whose attachment is not in the email (yes, it happens) + // cf #6996 + content = content.replaceAll("(\\w+)=([\"'])cid:.*?([\"'])", ""); + + contents.add(content); + } - Html2Image html2Image = Html2Image.fromHtml(content); + Html2Image html2Image = Html2Image.fromHtml(StringUtils.join(contents, "<hr/>")); ImageRenderer imageRenderer = html2Image.getImageRenderer().setWidth((int) PageSize.A4.getWidth()); org.w3c.dom.Document doc = html2Image.getParser().getDocument(); diff --git a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java index 7867b3c..05d0e41 100644 --- a/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java +++ b/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java @@ -476,7 +476,7 @@ public class MailFilterJob extends AbstractFaxToMailJob { if (message.isMimeType("multipart/*")) { // manage boundary id - String htmlContent = emailService.decomposeMultipartEmail(attachments, message); + List<String> htmlContent = emailService.decomposeMultipartEmail(attachments, message); if (htmlContent != null) { if (log.isDebugEnabled()) { log.debug("Converting html content to pdf : " + message.getSubject()); -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 1cc9fabbf07486148d7bfd279c5e1eca755351d4 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 12 18:05:59 2015 +0100 correction affichage mail dans élément --- faxtomail-persistence/src/main/resources/faxToMail.properties | 4 ++-- .../faxtomail/ui/swing/content/demande/DemandeUIModel.java | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/faxtomail-persistence/src/main/resources/faxToMail.properties b/faxtomail-persistence/src/main/resources/faxToMail.properties index 30dae76..babd1e2 100644 --- a/faxtomail-persistence/src/main/resources/faxToMail.properties +++ b/faxtomail-persistence/src/main/resources/faxToMail.properties @@ -24,8 +24,8 @@ hibernate.dialect=org.hibernate.dialect.H2Dialect hibernate.connection.driver_class=org.h2.Driver -#hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data;MODE=MSSQLServer;AUTO_SERVER=TRUE -hibernate.connection.url=jdbc:h2:file:/home/kmorin/faxtomail/h2data;MODE=MSSQLServer;AUTO_SERVER=TRUE;CACHE_SIZE=8192 +hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data;MODE=MSSQLServer;AUTO_SERVER=TRUE +#hibernate.connection.url=jdbc:h2:file:/home/kmorin/faxtomail/h2data;MODE=MSSQLServer;AUTO_SERVER=TRUE;CACHE_SIZE=8192 hibernate.connection.username=sa hibernate.connection.password= diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java index 4aa7700..549a404 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java @@ -934,6 +934,8 @@ public class DemandeUIModel extends AbstractFaxToMailBeanUIModel<Email, DemandeU } } + plainContents = null; + htmlContents = null; if (message.isMimeType("multipart/*")) { decomposeMultipartEmail(message); -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 06e63186a5a50ddc5e675ee326a73c41fa75a75b Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 16 15:09:26 2015 +0100 fixes #7724 Erreur à l'ouverture d'un élément quand l'email n'a pas de texte fixes #7725 Erreur quand on veut répondre à un email qui n'a pas de texte fixes #7726 Erreur à l'ouverture d'un email dont le code html n'est pas valide --- .../ui/swing/content/reply/ReplyFormUIHandler.java | 2 +- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 43 +++++++++++++++++----- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java index 360f6b9..defc629 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java @@ -136,7 +136,7 @@ public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIMo String quotedReply = t("faxtomail.reply.message", decorate(demand.getReceptionDate()), demand.getSender(), - plainContent.replaceAll("\n", "\n> ")); + plainContent != null ? plainContent.replaceAll("\n", "\n> ") : ""); model.setMessage(quotedReply); String recipient = demand.getRecipient(); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index d90fcd3..15a51f8 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -39,6 +39,7 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel; import com.google.common.base.Function; +import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Ordering; import com.itextpdf.text.Document; @@ -348,18 +349,31 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { List<String> contents = demandeUIModel.getHtmlContent(); if (contents != null) { + for (String content : contents) { - addHtmlTextPane(handler, demandeUIModel, textPanePanel, content); + if (content != null) { + addHtmlTextPane(handler, demandeUIModel, textPanePanel, content); + } } - } else { + } + + // if there is no html content or if no html content can be correctly displayed (ie throws an exception) + if (textPanePanel.getComponentCount() == 0) { + contents = demandeUIModel.getPlainContent(); - for (String content : contents) { - JTextPane textPane = new JTextPane(); - textPane.setText(content); - textPanePanel.add(textPane); - textPanePanel.add(Box.createVerticalStrut(3)); + if (contents != null) { + + for (String content : contents) { + + if (content != null) { + JTextPane textPane = new JTextPane(); + textPane.setText(content); + textPanePanel.add(textPane); + textPanePanel.add(Box.createVerticalStrut(3)); + } + } } } } @@ -783,6 +797,8 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { JPanel textPanePanel, String content) { + Preconditions.checkNotNull(content); + JTextPane textPane = createHtmlTextPane(); // the meta tag makes the content is not displayed @@ -819,11 +835,18 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { log.trace("Content after mail = " + content); } - textPane.setText(content); + try { + textPane.setText(content); + + textPanePanel.add(textPane); - textPanePanel.add(textPane); + textPanePanel.add(Box.createVerticalStrut(3)); - textPanePanel.add(Box.createVerticalStrut(3)); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Error when displaying email content", e); + } + } } protected static JTextPane createHtmlTextPane() { -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 2cac8083c92361fbbadb2e6734043c6260d23a9c Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 19 17:31:15 2015 +0100 encodage des urls des images dans les emails (fixes #7741, fixes #7740) --- faxtomail-service/pom.xml | 5 ++++ .../faxtomail/services/FaxToMailServiceUtils.java | 32 ++++++++++++++++++++++ .../services/service/EmailServiceImpl.java | 4 +++ .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 17 ++++++++++-- pom.xml | 7 +++++ 5 files changed, 63 insertions(+), 2 deletions(-) diff --git a/faxtomail-service/pom.xml b/faxtomail-service/pom.xml index 3d21749..5898986 100644 --- a/faxtomail-service/pom.xml +++ b/faxtomail-service/pom.xml @@ -134,6 +134,11 @@ </dependency> <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + </dependency> + + <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> </dependency> diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java index 2f63743..b02bc12 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceUtils.java @@ -25,6 +25,8 @@ package com.franciaflex.faxtomail.services; */ import com.franciaflex.faxtomail.persistence.entities.MailFolder; +import org.apache.commons.httpclient.URIException; +import org.apache.commons.httpclient.util.URIUtil; import org.apache.commons.io.Charsets; import javax.mail.MessagingException; @@ -32,13 +34,19 @@ import javax.mail.Part; import javax.mail.internet.ContentType; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @author Kevin Morin (Code Lutin) */ public class FaxToMailServiceUtils { + public static final Pattern IMG_SRC_PATTERN = Pattern.compile("src=([\"'])(.*?)([\"'])"); + public static String addFaxDomainToFaxNumber(String faxNumber, MailFolder folder) { while (!folder.isUseCurrentLevelFaxDomain() && folder.getParent() != null) { @@ -96,4 +104,28 @@ public class FaxToMailServiceUtils { } return sb.toString(); } + + /** + * Sometimes, the urls of the images in an email contains spaces. + * But URI.parse(uri) does not accept spaces as a valid character. + * This method encode the url for them to be compatible with URI.parse + * + * @param emailContent the content of the email + * @return the email content with the url of the images encoded to be parsed by URI + * @throws URIException + */ + public static String encodeImageSourcesInEmail(String emailContent) throws URIException { + List<String> imgSrcUrls = new ArrayList<>(); + + Matcher imgSrcMatcher = IMG_SRC_PATTERN.matcher(emailContent); + while (imgSrcMatcher.find()) { + imgSrcUrls.add(imgSrcMatcher.group(2)); + } + + for (String imgSrcUrl : imgSrcUrls) { + emailContent = emailContent.replace(imgSrcUrl, URIUtil.encodeQuery(imgSrcUrl)); + } + + return emailContent; + } } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index a007a99..05c7ea5 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -2128,6 +2128,10 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe // cf #6996 content = content.replaceAll("(\\w+)=([\"'])cid:.*?([\"'])", ""); + // on reformate les urls pour supprimer les caractères qui vont pas (ex espaces) + // cf #7740 + content = FaxToMailServiceUtils.encodeImageSourcesInEmail(content); + contents.add(content); } diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index 15a51f8..e81dfb4 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -72,7 +72,12 @@ import org.nuiton.util.StringUtil; import javax.media.jai.PlanarImage; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; -import javax.swing.*; +import javax.swing.Box; +import javax.swing.Icon; +import javax.swing.JEditorPane; +import javax.swing.JPanel; +import javax.swing.JTextPane; +import javax.swing.JTree; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import javax.swing.text.StyledEditorKit; @@ -82,7 +87,11 @@ import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; -import java.awt.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Desktop; +import java.awt.Font; +import java.awt.Graphics; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.awt.print.PageFormat; @@ -836,6 +845,10 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { } try { + // on reformate les urls pour supprimer les caractères qui vont pas (ex espaces) + // cf #7741 + content = FaxToMailServiceUtils.encodeImageSourcesInEmail(content); + textPane.setText(content); textPanePanel.add(textPane); diff --git a/pom.xml b/pom.xml index 27ef9cc..856dbff 100644 --- a/pom.xml +++ b/pom.xml @@ -126,6 +126,7 @@ <commonsEmailVersion>1.3.3</commonsEmailVersion> <commonsCollections4Version>4.0</commonsCollections4Version> <commonsLang3Version>3.3.2</commonsLang3Version> + <commonsHttpClientVersion>3.1</commonsHttpClientVersion> <commonsLoggingVersion>1.2</commonsLoggingVersion> <junitVersion>4.11</junitVersion> @@ -445,6 +446,12 @@ <version>${commonsLang3Version}</version> </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + <version>${commonsHttpClientVersion}</version> + </dependency> + <!-- web module --> <dependency> <groupId>javax.servlet</groupId> -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 460618564f13072b2926eaa37779af04b8058a2a Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 12:25:49 2015 +0100 fixes #7743 : Des emails se retrouvent sans groupe après groupage de mails déjà groupés --- .../services/service/EmailServiceImpl.java | 12 +++- .../services/service/EmailServiceTest.java | 82 +++++++++++++++++----- 2 files changed, 75 insertions(+), 19 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index 05c7ea5..5fc7b5a 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -994,6 +994,7 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe @Override public Email groupEmails(String email1Id, String email2Id, FaxToMailUser user) { EmailGroupTopiaDao groupDao = getPersistenceContext().getEmailGroupDao(); + EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); Email email1 = getFullEmailById(email1Id, user); Email email2 = getFullEmailById(email2Id, user); @@ -1025,14 +1026,19 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe // if both groups exist, merge them } else { - group1.addAllEmail(group2.getEmail()); - email2.setEmailGroup(group1); + Set<Email> group2Emails = new HashSet<>(group2.getEmail()); + + // on désassocie les emails du groupe 2 group2.clearEmail(); + + // on les associe au groupe 1 + group1.addAllEmail(group2Emails); + groupDao.delete(group2); groupDao.update(group1); + } - EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); Date now = new Date(); diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java index f7e0faa..9464ac4 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java @@ -24,31 +24,35 @@ package com.franciaflex.faxtomail.services.service; * #L% */ -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Collection; -import java.util.Collections; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.nuiton.topia.persistence.TopiaEntities; -import org.nuiton.util.pagination.PaginationParameter; -import org.nuiton.util.pagination.PaginationResult; import com.franciaflex.faxtomail.persistence.entities.AttachmentFile; import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.EmailFilter; +import com.franciaflex.faxtomail.persistence.entities.EmailGroup; +import com.franciaflex.faxtomail.persistence.entities.EmailTopiaDao; +import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.MailFolderTopiaDao; import com.franciaflex.faxtomail.persistence.entities.Range; import com.franciaflex.faxtomail.persistence.entities.SearchFilter; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.persistence.TopiaEntities; +import org.nuiton.util.pagination.PaginationParameter; +import org.nuiton.util.pagination.PaginationResult; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; /** * Email service tests. @@ -219,7 +223,7 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { } /** - * Test le fonctionnement de search archives qui contennait une erreur de synthax en 1.1. + * Teste le fonctionnement de search archives qui contennait une erreur de synthax en 1.1. */ @Test public void testSearchArchives() { @@ -229,6 +233,52 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { Assert.assertFalse(emails.isEmpty()); } + /** + * Teste le groupement d'emails + */ + @Test + public void testGroupEmails() { + MailFolderTopiaDao mailFolderDao = getServiceContext().getPersistenceContext().getMailFolderDao(); + MailFolder cyrilFolder = mailFolderDao.forNameEquals("Cyril").findUnique(); + + FaxToMailUser cyril = userService.getUserByLogin("cbaillet"); + + EmailTopiaDao emailDao = getServiceContext().getPersistenceContext().getEmailDao(); + List<Email> emails = emailDao.forMailFolderEquals(cyrilFolder).addEquals(Email.PROPERTY_ARCHIVE_DATE, null).find(0, 6); + + // on groupe 2 éléments + Email email0 = emails.get(0); + Email email1 = emails.get(1); + Email groupedEmail = service.groupEmails(email0.getTopiaId(), email1.getTopiaId(), cyril); + Assert.assertEquals(2, groupedEmail.getEmailGroup().sizeEmail()); + + // on groupe un élément non groupé à un élément groupé + Email email2 = emails.get(2); + groupedEmail = service.groupEmails(email2.getTopiaId(), email0.getTopiaId(), cyril); + Assert.assertEquals(3, groupedEmail.getEmailGroup().sizeEmail()); + + // on groupe un élément groupé à un élément non groupé + Email email3 = emails.get(3); + groupedEmail = service.groupEmails(email1.getTopiaId(), email3.getTopiaId(), cyril); + Assert.assertEquals(4, groupedEmail.getEmailGroup().sizeEmail()); + + Email email4 = emails.get(4); + Email email5 = emails.get(5); + groupedEmail = service.groupEmails(email4.getTopiaId(), email5.getTopiaId(), cyril); + Assert.assertEquals(2, groupedEmail.getEmailGroup().sizeEmail()); + + // on groupe 2 éléments qui sont déjà groupés + groupedEmail = service.groupEmails(email0.getTopiaId(), email5.getTopiaId(), cyril); + Assert.assertEquals(6, groupedEmail.getEmailGroup().sizeEmail()); + + // on vérifie que l'email dont le groupe a été mergé a bien le nouveau groupe + Email email4Reloaded = service.getEmailById(email4.getTopiaId()); + EmailGroup email4ReloadedEmailGroup = email4Reloaded.getEmailGroup(); + Assert.assertEquals(groupedEmail.getEmailGroup(), email4ReloadedEmailGroup); + + + } + // @Test // public void testConvertHTMLToPdf() { // -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit f40eba8b869ebfa92b0492d2ddf24cfb95b20a9f Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:50:09 2015 +0100 fix import --- .../faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java index defc629..e38d3b8 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java @@ -32,8 +32,8 @@ import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; import com.franciaflex.faxtomail.persistence.entities.MailFolder; import com.franciaflex.faxtomail.persistence.entities.Stamp; import com.franciaflex.faxtomail.services.service.ldap.Contact; -import com.franciaflex.faxtomail.ui.swing.content.reply.actions.AddAttachmentToReplyAction; import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; +import com.franciaflex.faxtomail.ui.swing.content.reply.actions.AddAttachmentToReplyAction; import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.google.common.base.Strings; @@ -57,6 +57,7 @@ import javax.swing.JTextField; import javax.swing.JTextPane; import java.awt.Component; import java.awt.Dimension; +import java.awt.Window; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -- 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 develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 545a2657a97e6b16c2c48f912b3f354c572f6c29 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 23 16:54:46 2015 +0100 add 3rd party --- faxtomail-service/src/license/THIRD-PARTY.properties | 4 +++- faxtomail-ui-web/src/license/THIRD-PARTY.properties | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/faxtomail-service/src/license/THIRD-PARTY.properties b/faxtomail-service/src/license/THIRD-PARTY.properties index a3b853c..66ea6b0 100644 --- a/faxtomail-service/src/license/THIRD-PARTY.properties +++ b/faxtomail-service/src/license/THIRD-PARTY.properties @@ -2,6 +2,7 @@ #------------------------------------------------------------------------------- # Already used licenses in project : # - AL 2.0 +# - Apache License # - Apache License 2.0 # - Apache License, version 2.0 # - BSD License @@ -37,7 +38,8 @@ # Please fill the missing licenses for dependencies : # # -#Wed Jan 21 10:01:09 CET 2015 +#Mon Nov 23 16:51:12 CET 2015 +commons-codec--commons-codec--1.2=The Apache Software License, Version 2.0 commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 dom4j--dom4j--1.6.1=BSD License gui.ava--html2image--2.0.1=GNU Lesser General Public License, Version 2.1 diff --git a/faxtomail-ui-web/src/license/THIRD-PARTY.properties b/faxtomail-ui-web/src/license/THIRD-PARTY.properties index 3c52d32..2049073 100644 --- a/faxtomail-ui-web/src/license/THIRD-PARTY.properties +++ b/faxtomail-ui-web/src/license/THIRD-PARTY.properties @@ -2,6 +2,7 @@ #------------------------------------------------------------------------------- # Already used licenses in project : # - AL 2.0 +# - Apache License # - Apache License 2.0 # - Apache License, version 2.0 # - BSD License @@ -43,7 +44,8 @@ # Please fill the missing licenses for dependencies : # # -#Wed Jan 21 10:11:43 CET 2015 +#Mon Nov 23 16:52:08 CET 2015 +commons-codec--commons-codec--1.2=The Apache Software License, Version 2.0 commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 dom4j--dom4j--1.6.1=BSD License gui.ava--html2image--2.0.1=GNU Lesser General Public License, Version 2.1 -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm