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 7.5.3 ready for download

    Aug 18, 2010 - OpenCms version 7.5.3 is now ready and available for download. With OpenCms 7.5.3, a number of issues that persisted in the 7.5.2 release have been fixed. Some new features have been added as well.

  • Alkacon OCEE 2.1.3 for OpenCms available

    Aug 18, 2010 - Alkacon OCEE for OpenCms offers Support for LDAP, Clustering, Replication and improves OpenCms general performance. Alkacon OCEE release 2.1.3 is a maintenance update that fixes a number of issues.

  • OpenCms 7.5.3 release notes

    Aug 18, 2010 - The OpenCms 7.5.3 release notes contain detailed information about the fixes and changes in this release.

  • 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.

Take the guided tour

Try the OpenCms Live Demo