...
...
...
...
...
...
...
...
...
...
...
...
...
...
This tutorial will introduce you to OpenMRS SDK (Software Development Kit). It assumes that you have basic understanding of OpenMRS modular architecture (you can learn about it by reading Technical Overview).
To get started ensure , make sure that you have installed the latest version of OpenMRS SDK and Oracle JDK 8. You can find instruction how to do that instructions on OpenMRS SDK wiki pages.
In this tutorial we will walk step by step through common use cases and scenarios step by step.
Table of Contents |
---|
Why use the SDK
The question is why do I need to use the SDK for development, instead of installing Tomcat and using my own configuration.
The SDK is the tool for setting up multiple self contained servers that can be run independently , at times at the same time by running . You can run each available server on a different port specifying the -Dport variable. You can even mix the servers, having those running JDK 1.7 for 1.11.x and JDK 1.8 2.x alongside each other.
...
We will walk through these steps and create an environment to develop and debug REST module on top of OpenMRS 2.0.0 platform.
...
If you want to enable remote debugging by default when running the server,
specify the port number here (e.g. 1044). Leave blank to disable debugging.
(Do not do this on a production server) (default: 'no debugging'):
Type default value '1044' and push enter. Specifying debug port is essential to setup remote debugging configuration. You will be asked what database you want to use:
Which database would you like to use?:
1) H2
2) MySQL 5.6 7 (requires pre-installed MySQL 5.67)
3) MySQL 5.6 7 in SDK docker container (requires pre-installed Docker)
4) Existing docker container (requires pre-installed Docker)
In this tutorial we will use most simple solution: H2, so answer with '1'. You can find more information about other options in OpenMRS SDK Setting up servers docs.
Last prompt will ask you for path to JDK:
Which JDK would you like to use to run this server?:
1) JAVA_HOME (currently: /usr/lib/jvm/java-8-oracle/jre)
2) /usr/lib/jvm/java-7-oracle/jre
43) Other...
If you have properly configured JAVA_HOME, answer '1'. If not, you need to answer with '43' and type path to JDK on your machine. Please note that OpenMRS platform 2.x requres JDK 8 to run.
Now, when server is created you need to get the source of REST module. To do that, in your workspace directory run:
...
So you will always have module compiled from your sources on 'webservices-dev' server. At the end of the installation, you will get a prompt as below.
No Format |
---|
Would you like to deploy webservices.rest 2.29.0-SNAPSHOT from the current directory? [Y/n]: |
Now it's time to create debugging configuration in IDE. Recommended The recommended way is to create remote debugging configuration on adress address 'localhost:1044' (1044 is debug port you specified during server creation). This way, you can run instance from command line:
...
Remote debugging has important advantage over running server from IDE - you can debug multiple projects with a single server run running (but only one at the same time), and run debugging only when you need to.
...
Steps to create debugging configuration depend on the IDE you are using, but it should be quite easy to find.
...
This way you can set up development environment for any module and openmrs-core. Remember that you have to provide all required modules by currently developed module.
If you want to delete the environment, use the following command with the server id. If you want to find the correct server id, go to ~/openmrs (Linux/Mac) or %userprofile%\openmrs (Windows). There the respective folder names equal to server ids. The command will delete the server as well as the database it used.
Code Block |
---|
mvn openmrs-sdk:delete -DserverId=<serverID> |
Developing with the Reference Application
...
OpenMRS distribution consist of platform and set of modules. SDK distribution is specified in properties file, by convention named openmrs-distro.properties. openmrs-distro.properties . Minimal file can be found inside the server created in ~/openmrs (Linux/Mac) or %userprofile%\openmrs (Windows). Minimal valid distro file contains 3 fields:
...
Let's create basic distribution for development of Open Web Apps for OpenMRS. To serve OWA we need OWA module and REST module, because most of Web Apps want to consume OpenMRS REST API. To introduce module to distro configuration, we need to add new line in format: 'omod.{module id}={module version}'. Module id by convention matches module's Maven Artifact ID. For OWA module it is simply 'owa', for REST module it is 'webservices.rest'. We will use platform 2.0 version. Let's name our distribution 'OWA development'.
To sum up, our openmrs-distro.properties file will look like this:
name= OWA development
version= 1.0
war.openmrs= 2.0.0
omod.owa=1.6.2
omod.webservices.rest=2.17-SNAPSHOT
SDK automatically assumes that modules Maven Group ID is 'org.openmrs.module', but you can declare another Group ID
...
To allow others to reproduce your server configuration, you have to create openmrs-distro.properties file with modules deployed on failing server. Since SDK 3.4.x you can go to your server directory `{user directory}/openmrs/{name of server}` and copy this file to share it with others. If you are using older version of SDK or standalone OpenMRS, you need to manually create this file as described in Creating new distribution.
Creating MySQL dump file
...
from directory where you have those 2 files. flag -Drun makes SDK automatically run server after successful setup. Go to http://localhost:8080/openmrs/ to complete the setup.
Related articles
...
Page Properties | |||
---|---|---|---|
| |||
|