GSOC 2020 FINAL EVALUATIONS
Project : Upgrade Platform Core Libraries Project
Primary mentor: Moses Mutesasira
Backup mentor: Sharif Magembe
Student: Pahonsi Bebeto Achile
Project Link: https://wiki.openmrs.org/display/projects/GSoC+2020+%3A+Upgrade+Platform+Core+Libraries+Project
1.Overview
We need to upgrade our Platform Core libraries ,to be able to leaverage all the latest functionalities in the latest released versions of these libraries. As first priority we would need to upgrade Java .
This project will address the issues that will arise during the Upgrade.
2.Objectives
Main Objectives
Upgrading Java from OpenJDK 8 to OpenJDK 11. Note that Java 11 is Only supported out of the box in Spring 5.(COMPLETED)
Extra Credit
- Upgrading other Libraries that are pending.
3.GSoC Contributions
I did work on FHIR module and FHIR Module v2 Since we are replacing the FHIR module module with FHIR Module v2 and FHIR Module v2 is still in the development .
OpenMRS Core:
Tickets Completed :
Upgrade Core to Compile and run on OpenJDK 8 ,9,10, 11,12,13,14
Junit migration
2. Ticket : https://issues.openmrs.org/browse/TRUNK-5812
Pull Request : click here to view all the Pull request
3.Ticket :https://issues.openmrs.org/browse/TRUNK-5813
Pull Request : click here to view the list of committed message
4. Ticket : https://issues.openmrs.org/browse/TRUNK-5814
Pull Request : click here to view the pull request
5.Ticket : https://issues.openmrs.org/browse/TRUNK-5816
Pull Request : click here and here to view all the pull request
6.Ticket : https://issues.openmrs.org/browse/TRUNK-5817
Pull Request : click here to view all the pull request
7. Ticket : https://issues.openmrs.org/browse/TRUNK-5818
Pull Request : click here to view all the pull request
Upgrading other Libraries
8.Ticket: https://issues.openmrs.org/browse/TRUNK-5814
PR: https://github.com/openmrs/openmrs-core/pull/3290
9.Ticket :https://issues.openmrs.org/browse/TRUNK-5769
PR: https://github.com/openmrs/openmrs-core/pull/3232
10.Ticket :https://issues.openmrs.org/browse/TRUNK-5770
PR: https://github.com/openmrs/openmrs-core/pull/3231
11.Ticket : https://issues.openmrs.org/browse/TRUNK-5771
PR: https://github.com/openmrs/openmrs-core/pull/3233
12.Ticket: https://issues.openmrs.org/browse/TRUNK-5772
PR: https://github.com/openmrs/openmrs-core/pull/3246
13.Ticket : https://issues.openmrs.org/browse/TRUNK-5773
PR: https://github.com/openmrs/openmrs-core/pull/3250
14.Ticket: https://issues.openmrs.org/browse/TRUNK-5774
PR :https://github.com/openmrs/openmrs-core/pull/3245
15.Ticket : https://issues.openmrs.org/browse/TRUNK-5775
PR: https://github.com/openmrs/openmrs-core/pull/3244
16.Ticket : https://issues.openmrs.org/browse/TRUNK-5776
PR : https://github.com/openmrs/openmrs-core/pull/3249
17.Ticket :https://issues.openmrs.org/browse/TRUNK-5777
PR: https://github.com/openmrs/openmrs-core/pull/3247
18.Ticket: https://issues.openmrs.org/browse/TRUNK-5778
PR: https://github.com/openmrs/openmrs-core/pull/3248
19.https://issues.openmrs.org/browse/TRUNK-5521
PR: https://github.com/openmrs/openmrs-core/pull/3213
20.Ticket: https://issues.openmrs.org/browse/TRUNK-5779
PR: https://github.com/openmrs/openmrs-core/pull/3268
21.Ticket :https://issues.openmrs.org/browse/TRUNK-5780
PR: https://github.com/openmrs/openmrs-core/pull/3269
Tickets in progress:
PR: https://github.com/openmrs/openmrs-core/pull/3548
2.Ticket: https://issues.openmrs.org/browse/TRUNK-5764
PR: https://github.com/openmrs/openmrs-core/pull/3227
3.Ticket: https://issues.openmrs.org/browse/TRUNK-5767
PR: https://github.com/openmrs/openmrs-core/pull/3226
Webservices REST Module
Tickets Completed :
Upgrading other Libraries
PR: https://github.com/openmrs/openmrs-module-webservices.rest/pull/437
2.Ticket: https://issues.openmrs.org/browse/RESTWS-782
PR: https://github.com/openmrs/openmrs-module-webservices.rest/pull/439
3.Ticket: https://issues.openmrs.org/browse/RESTWS-783
PR:https://github.com/openmrs/openmrs-module-webservices.rest/pull/440
4.Ticket: https://issues.openmrs.org/browse/RESTWS-784
PR:https://github.com/openmrs/openmrs-module-webservices.rest/pull/441
5.Ticket: https://issues.openmrs.org/browse/RESTWS-785
Pr: https://github.com/openmrs/openmrs-module-webservices.rest/pull/442
6.Ticket: https://issues.openmrs.org/browse/RESTWS-786
PR: https://github.com/openmrs/openmrs-module-webservices.rest/pull/443
7.Ticket: https://issues.openmrs.org/browse/RESTWS-787
PR: https://github.com/openmrs/openmrs-module-webservices.rest/pull/444
8.Ticket: https://issues.openmrs.org/browse/RESTWS-779 and https://issues.openmrs.org/browse/RESTWS-780
PR: https://github.com/openmrs/openmrs-module-webservices.rest/pull/445
Open Web Apps
Ticket Completed :
Upgrading other Libraries
1.Ticket: https://issues.openmrs.org/browse/OWA-99
PR: https://github.com/openmrs/openmrs-module-owa/pull/72
Talk thread discussion:
- https://talk.openmrs.org/t/gsoc-2020-upgrade-platform-core-libraries-project/28757
- https://talk.openmrs.org/t/openmrs-core-junit-5-migration-status/29484
4.Weekly Reports are listed below:
5.Resources
1.Talk thread discussion:
- https://talk.openmrs.org/t/gsoc-2020-upgrade-platform-core-libraries-project/28757
- https://talk.openmrs.org/t/openmrs-core-junit-5-migration-status/29484
2.Source Code Repository:
- OpenMRS Core: https://github.com/openmrs/openmrs-core ,
- FHIR module : https://github.com/openmrs/openmrs-module-fhir ,
- Webservices REST Module: https://github.com/openmrs/openmrs-module-webservices.rest
- Open Web Apps : https://github.com/openmrs/openmrs-module-owa
- FHIR Module v2 : https://github.com/openmrs/openmrs-module-fhir2
3.mid-term video presentations
4.Other Resource
- https://spring.io/blog/2018/09/21/spring-framework-5-1-goes-ga
- https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x
6.Future Works:
1. migrating to using JPA instead of raw Hibernate. The rationale for this is less to enable supporting other JPA providers and more because Hibernate’s new feature development is primarily focused on being a proper implementation of the JPA spec. So, for example JQL gets more attention than HQL these days and the Hibernate Criteria API has been “deprecated” in favour of the JPA version (it’s not going away anytime soon; it’s just not receiving new features).
2.Migrate to using a child Spring context per module instead of a single big Spring context. This is much more pie-in-the-sky, but it could likely result in a reduction of the time it takes to refresh the main Spring context (which is a large chunk of the start-up time). This would need to be tested to ensure that, e.g., modules can still add services to the Context object, etc.
7.Thoughts on GSoC:
It has been a wonderful experience for me for the last 12 weeks to work with OpenMRS and GSoC community. I would like to thank the entire OpenMRS community for providing me with this opportunity, my mentors Moses Mutesasira and Sharif Magembe, Ivo Ulrich, Daniel Kayiwa, Ian Bacher for the support and help they gave me through out the process and at last Google for this wonderful experience .