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

  • Update of Alkacon OCEE for OpenCms released

    Jan 21, 2010 - Alkacon OCEE for OpenCms offers Support for LDAP, Clustering, Replication and improves the system performance. This OCEE release 2.1.2 is a maintenance update that fixes a number of issues.

  • OpenCms 7.5.2 available

    Jan 20, 2010 - OpenCms version 7.5.2 is now available for download. This is a maintenance release that fixes a number of issues that persisted in the 7.5.1 version, including some OpenCms Workplace compatibility issues with newer browser versions.

  • OpenCms 7.5.2 release notes

    Jan 20, 2010 - The OpenCms 7.5.2 release notes contain detailed information about the fixes and changes in this release.

  • New Alkacon OCEE version for OpenCms available

    Oct 12, 2009 - OCEE for OpenCms offers Support for LDAP, Clustering, Replication and improved performance. The latest OCEE release 2.1.1 is an important update that fixes a number of potential issues and introduces some new features for OpenCms 7.0 / 7.5.

Take the guided tour

Try the OpenCms Live Demo