...
- OpenLMIS "core" composed as a Spring Boot application.
- Core modules are created as Spring components. This is likely the requisition/fulfillment set of services
- The OpenLMIS application is a composition of these components into a distribution. The distribution:
- assembles various components together using standard Spring wiring, using Maven to locate dependencies
- See
Repositories
This section is outdated compared to later discussion.
- OpenLMIS Organization in GitHub publishes several repositories:
- openlmis-core-domain
- One or more modules for reference entities, such as Users, Facilities, etc.
- Artifacts: jar file, than can run as a single service
- openlmis-requisition-core
- Spring boot application. Composed of several Spring modules (see openlmis-requisition-module-xx)
- Artifacts: jar file, that can run as a single service
- openlmis-requisition-module-xx
- where xx is requisition, fulfillment, etc.
- holds core modules that are composed in openlmis-core
- Artifacts: jar file for each module
- openlmis-requisition-module-xx-ui
- UI components that match the service (pending ref UI strategy)
- openlmis-reference-distro
- projects fork or copy this to create the actual application. Reference distribution produces a set of docker images
- project could create a monolithic app, too.
- Artifacts: the actual OpenLMIS applications, made up of several docker images, stitched together with Docker Compose and configuration (such as DB connecton details if we're sharing a Postgres image).
- each Docker image is domain bounded. E.g. one for Requisition/core, one for Inventory Management, one for core domain (ref data), another for UI, and potentially others for add-on modules
- projects fork or copy this to create the actual application. Reference distribution produces a set of docker images
- Reference UI
- openlmis-core-domain
...