GSoC 2020 : Switching from XML Mappings to Annotations on OpenMRS domain Objects

Primary mentor

@Nathan Ruhanga

Backup mentor

@Kaweesi Joseph

Assigned to

@Alin Mihaila

Abstract

The OpenMRS domain objects currently heavily rely on the xml mapping files. These not only makes it difficult to for new developers to figure out how the object defined variables end-up in the database, but also processing the metadata related to the domain object becomes more difficult. This project will address the challenges faced when depending on xml mappings as well as address the possible bugs that could be uncovered when migrating to annotations' usage.

Project Champions

@Wyclif Luyima, @Moses Mutesasira,  @Nathan Ruhanga

Skills Needed

  • Excellent understanding of Java

  • Good understanding of the hibernate library

  • General understanding of the OpenMRS data model

  • Familiarity with Liquibase

Objectives

  • Switch from xml mappings to annotations on all OpenMRS Core domains

Resources

Approved tickets

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Incomplete Tasks

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table column resulting from annotated superclass

- has missing database table

- ERROR: Editing the fields [changedBy, dateChanged] on Order is not allowed

- it extends person, and I had some problems annotating that base class

-ERROR: Not all named super-types (extends) were found : [Person]

-ERROR: null not allowed for column "creator"

-ERROR: null not allowed for column "creator"

-ERROR: null not allowed for column "creator"