Updating OpenCms 3rd party libraries

The goal of this project was to update all 3rd partry libraries to their recent version and get rid of the patched commons-email.jar.

Performed changes

  • Originally, an alpha version of the Apache library Commons Email was adopted by OpenCms developers to OpenCms specific needs. With the official release of the version 1.0 of the Commons Email library, Apache developers had changed (of course amongst others) the signatures of crucial methods and also the exception concept. All Exceptions had to be changed from their respective javax.mail.MessagingException (including its subclasses) counterparts to the org.apache.commons.mail.EmailException of the Commons Email project. For this reason, with the update to the latest version of the commons-email.jar a few OpenCms classes needed to get refactored. This resulted in changes of the following classes:
    • org.opencms.mail.CmsHtmlJava
    • org.opencms.mail.CmsMailTransport
    • org.opencms.mail.CmsMultiPartMail
    • org.opencms.mail.CmsSimpleMail
    • org.opencms.mail.Messages
    • org.opencms.newsletter.CmsNewsletter
    • org.opencms.notification.A_CmsNotification
    • org.opencms.notification.CmsNotificaitonCandidates
    • org.opencms.frontend.templateone.CmsTemplateFormLetter
    • org.opencms.frontend.templateone.CmsTemplateFormRecommend
    • org.opencms.workplace.tools.workplace.broadcast. CmsMessageInfo
    Furthermore, a new entry was added to the property file org.opencms.mail.messages.properties.
    Two more classes were created to be able to test the mail functionality:
    • org.opencms.mail.AllTests
    • org.opencms.mail.TestCmsMail
    For further information regarding the Unit-Tests please consult the JUnit description.
  • The behaviour of the method ConvertUtils#convert(String) of commons-beanutils changed so it returned an empty String ("") instead of null if null was passed in as an argument. This resulted in a small change in the class org.opencms.configuration.CmsSetNextRule#end(String,String) (see patch for details)
  • The update of quartz to version 1.6.0 added a method to the interface org.quartz.spi.ThreadPool which is implemented by org.opencms.scheduler.CmsSchedulerThreadPool. This method has been implemented (see patch for details)
  • The update of quartz required adding jta-1.0.1b.jar to the libraries

Problems & future tasks

  • POI although out of date was not updated because some test cases fail if the libs are replaced. This needs further investigation.
  • Build a complete distribution and test it with a variety of modules
  • Send modifications to dumbster upstream
  • PDFBox version update broke tast cases. This needs further investigations.
  • TextMining version update broke test cases. This needs further investigations.
  • The JDBC drivers weren't tasked in lack of the respective database servers. The following drivers need testing:
    • MySQL 5
    • PostgreSQL
    • MSSQL
    • Oracle

Results

Latest News

  • OpenCms 11 available

    Apr 30, 2019 - OpenCms 11 brings a major update for the workplace. All workplace apps have been replaced with modernized versions. OpenCms 11 also features improvements for template generation, in the editors and for remote management. Moreover, this release is compatible with Java 11 and comes with the new "Mercury" default template.

  • OpenCms 11 Release Notes

    Apr 30, 2019 - The OpenCms 11 release notes contain detailed information about the new features and fixes in this version.

  • OpenCms 11 release candidate available

    Mar 29, 2019 - OpenCms 11 release candidate provides you with a comprehensive overview about the features of the next OpenCms generation. Try out this pre-release version before OpenCms 11.0.0 is published, which is expected by the end of April 2019. OpenCms 11 brings a major update for the workplace providing better usability and performance. Further enhancements include a new default template, automated image generation, core support for dynamic contents lists and meta-mappings for SEO.

  • OpenCms 11 RC Release Notes

    Mar 29, 2019 - The OpenCms 11 RC release notes contain detailed information about the new features and fixes in this release candidate.