Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack


Page tree
Skip to end of metadata
Go to start of metadata

Release date :  22/December/2020

Theme: Upgrading our Tech Stack

Note: This platform release requires at least a minimum of Java/OpenJDK 1.8 and MySQL 5.6 to run properly.

What's New?

This release is OpenMRS Platform 2.4.0 and is a major release version of the OpenMRS API that follows 2.3.2. It contains many under-the-hood updates to have a more modern tech stack. A number of libraries have been upgraded in this release and new features have been added such as support for OpenMRS to run on PostgreSQL, replacing the original FHIR module with the new and improved FHIR2 module which includes support for FHIR R4, upgrading other libraries e.g Log4j 2, JUnit 5, etc, switching domains from hibernate xml mappings to annotations, upgrading of the major core libraries like spring, hibernate and liquibase, adding support for MySQL 5.6 - 8.0, plus Java 8 - 15 support.

Release Manager:  CLIFF GITA, with mentorship from Kaweesi Joseph and Nathan Ruhanga, and support from Herbert Yiga




Point of Contact

Upgrade FHIR

Replace original fhir module with the FHIR2 module, which includes support for FHIR R4 (star)


Upgrade SpringUpgrade to Spring 5.2.9


Upgrade HibernateUpgrade to Hibernate 5.4.21


Support Java 8 - 15Add support for Java 9, 10, 11, 12, 13, 14, 15 while not losing support for Java 8


Upgrade Liquibase

Upgrade to Liquibase 3.10.2 and Avoid running legacy liquibase changesets. This greatly improves the startup speed by approximately 50%


Upgrade Other LibrariesUpgrade a number of other underlying libraries. e.g Log4j 2, JUnit 5, etc


Support PostgreSQLAdd support for PostgreSQL versions 8.2 up to the latest 12


Support MySQL 5.6 - 8.0Add support for all MySQL versions from 5.6 to the latest 8.0


Improvements to Condition and bug-fixes around Orders

Substantial improvements to Condition (were also included in 2.3.2), including:
Linking a Condition to an Encounter and Making Conditions Form Recordable (obs). Ongoing discussion for other improvements needed is here on Talk.


Library upgrades

TRUNK-5498 - Getting issue details... STATUS Upgrade Spring and Hibernate 

TRUNK-4830 - Getting issue details... STATUS Upgrade to Liquibase

TRUNK-5528 - Getting issue details... STATUS Upgrade org.apache.lucene sub Libraries

TRUNK-5496 - Getting issue details... STATUS Upgrade Core to Compile and run on OpenJDK 8 ,9,10, 11,12,13,14

Bug fixes

TRUNK-5716 - Getting issue details... STATUS

TRUNK-5740 - Getting issue details... STATUS

TRUNK-5795 - Getting issue details... STATUS

TRUNK-5962 - Getting issue details... STATUS

TRUNK-5967 - Getting issue details... STATUS

TRUNK-5403 - Getting issue details... STATUS

New features with bundled modules

RESTWS-773 - Getting issue details... STATUS Add Support for log4j2 based server log

RESTWS-777 - Getting issue details... STATUS Add causeOfDeathNonCoded as the updatable Property in REST

RESTWS-776 - Getting issue details... STATUS Enhance fulfiller details sub resource to allow updating accession number of an order

Database Changes

TRUNK-4830 - Getting issue details... STATUS

Community Input

Tremendous thanks go to all the great contributors that have greatly gathered their efforts towards this release, Moses Mutesasira, Juliet Wamalwa Sharif Magembe  Reagan patrick MakobaIrene Nyakatetendo kiiza MartynHerbert Yiga , CLIFF GITA, Daniel Kayiwa, Burke MamlinDimitri RWyclif Luyima  Aman Mishra Wolf Schlegel Pahonsi Bebeto Achile Samuel Male among many other great contributors.

Bundled Modules

  • REST Web Services v2.29.0
  • OWA v1.12.0
  • FHIR2 v1.1.0

Bundled OWAs

  • Add-on Manager


OpeMRS Platform 2.4.0 download link(

Other Supported Releases

  • No labels