Developers Guide
Overview
Resident Services are the self-services used by residents themselves via a portal. The Resident Portal is a web-based UI application that provides residents of a country with services related to their Unique Identification Number (UIN).
The documentation here will guide you through the prerequisites required for the developer's setup.
Software setup
Below is a list of tools required in Resident Services:
JDK 11
Any IDE (like Eclipse, IntelliJ IDEA)
Apache Maven (zip folder)
pgAdmin
Postman
Git
Notepad++ (optional)
lombok.jar (file)
settings.xml (document)
Follow the steps below to set up Resident Services on your local system:
Download
lombok.jarandsettings.xmlfrom here.Install Apache Maven.
Copy the
settings.xmlto ".m2" folderC:\Users\<username>\.m2.Install Eclipse.
Open the
lombok.jarfile and wait for some time until it completes the scan for Eclipse IDE and then clickInstall/Update. Specify the eclipse installation location if required by clicking the ‘Specify location…’ button. Then, clickInstall/Updatethe button to proceed.
Check the Eclipse installation folder
C:\Users\userName\eclipse\jee-2021-12\eclipseto see iflombok.jaris added. By doing this, you will not have to add the dependency oflombokin yourpom.xmlfile separately as it is auto-configured by Eclipse.Configure the JDK (Standard VM) with your Eclipse by traversing through
Preferences → Java → Installed JREs.
Code setup
For the code setup, clone the repository and follow the guidelines mentioned in the Code Contributions.
Importing and building a project
Open the project folder where
pom.xmlis present.Open the command prompt from the same folder.
Run the command
mvn clean install -Dgpg.skip=true -DskipTests=trueto build the project and wait for the build to complete successfully.After building a project, open Eclipse and select
Import Projects → Maven → Existing Maven Projects → Next → Browse to project directory → Finish.
After successful importing of the project, update the project by right-clicking on
Project → Maven → Update Project.
Environment setup
For the environment setup, you need an external JAR that is available here with different versions. Download the below-mentioned JARs with appropriate latest/appropriate versions. You will need to input the appropriate artifact ID and version and other inputs.
a.
icu4j.jarb.
kernel-auth-adapter.jarc.
kernel-ref-idobjectvalidator.jard.
kernel-transliteration-icu4j.jarE.g.: You can download
kernel-auth-adapter.jarand add to the projectLibraries → Classpath → Add External JARs → Select Downloaded JAR → Add → Apply and Close).
Clone mosip-config repository.
a. As Resident Services is using two properties files-
resident-default.propertiesandapplication-default.properties. But for the local running of the application, you need to provide additional/overriding properties such as secrets, passwords, and properties passed by the environment which can be added to new filesapplication-dev-default.properties(common properties for all modules) andresident-dev-default.properties(Resident service-specific properties).b. You will have to create both the property files according to your environment and put them in
mosip-config folder(cloned). The same files are available below for reference.These two files are loaded by the application by specifying the application names in the Application VM arguments like-
Dspring.cloud.config.name=application,resident,application-dev,resident-dev(also detailed in a later section).To run the server, two files are required-
kernel-config-server.jarandconfig-server-start.bat.Put both files in the same folder and point to the property-
Dspring.cloud.config.server.native.search-locationstomosip-configfolder inconfig-server-start.batfile and also check the version ofkernel-config-server.jartowards the end of the command.Example:
java -jar -Dspring.profiles.active=native - Dspring.cloud.config.server.native.search- locations=file:C:\Users\myDell\mosipProject\mosip-config - Dspring.cloud.config.server.accept-empty=true - Dspring.cloud.config.server.git.force-pull=false - Dspring.cloud.config.server.git.cloneOnStart=false - Dspring.cloud.config.server.git.refreshRate=0 kernel-config-server-1.2.0-20201016.134941-57.jar
As mentioned earlier, you will have to create property files according to your environment like
resident-env-defaultandapplication-env-default(here env represents environment name). Both files will contain different configurations such asresident-env-defaultwill have config properties (e.g., secrets, passcodes, etc) used for the resident-services module only andapplication-env-defaultis used for environment-specific changes and can be used for other modules as well.In this example, currently, these two files are created for the dev environment and hence the files have suffixes of
-dev. If you want to run it for a different environment such as qa, create these two files with-qasuffixes, and then you will also need to provide the appropriate VM argument for that referring to qa environment.
For instance,
Add
mosip.resident.client.secret=***********property to be able to use a decrypted passcode and run it on your local machine.If you check the URLs present in
application-defaultthe file, they are set to module-specific URLs, but you need to use internal/external environment URLs to access the APIs by using an application-dev-default file.In
application-dev-defaultfile, assign environment domain URL tomosipbox.public.url, and change all other URLs with ${mosipbox.public.url}.It results in
mosipbox.public.url=internal/externalAPI(e.g., mosipbox.public.url=https://api-internal.dev.mosip.net) and it will connect with the Development environment.
Run the server by opening the
config-server-start.batfile.
Configurations to be done in Eclipse
Open Eclipse and run the project for one time as a Java application, so that it will create a Java application which you can see in debug configurations, and then change its name. (e.g.: project name with the environment - "Resident-dev").

Open the Arguments tab and specify Application VM arguments: For example, for a development environment:
-Dspring.profiles.active=default - Dspring.cloud.config.uri=http://localhost:51000/config - Dspring.cloud.config.label=master -Dsubdomain=dev - Dspring.cloud.config.name=application,resident,application-dev,resident-dev --illegal-access=permit.Save this run configuration as ‘Resident-dev’ .
For
qaenvironment, you can createResident-qarun configuration with VM argument as below.Example:
-Dspring.profiles.active=default - Dspring.cloud.config.uri=http://localhost:51000/config - Dspring.cloud.config.label=master -Dsubdomain=qa - Dspring.cloud.config.name=application,resident,application-qa,resident-qa --illegal-access=permit
Click
Applyand then debug it (starts running). In the console, you can see a message likeStarted ResidentBootApplication in 34.078 seconds (JVM running for 38.361).
Resident services API
For API documentation, refer here.
The APIs can be tested with the help of Postman or Swagger-UI.
Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster. It is a widely used tool for API testing. Below you will find the APIs postman collection of resident-services.
Swagger is an interface description language for describing restful APIs expressed using JSON. You can access Swagger-UI of resident-services for the dev-environment from
https://api-internal.dev.mosip.net/resident/v1/swagger-ui.htmland localhost fromhttp://localhost:8099/resident/v1/swagger-ui.html.Download the JSON collection available below and import it to your postman. Resident-Service-APIs.postman_collection-latest.json.

Create an environment as shown in the image below.
This environment is created for dev. Give the variable name as url and set both values as https://api-internal.dev.mosip.net.

Similarly, create another environment as shown below.
This environment is created for localhost. Give the variable name as url and set both values as http://localhost:8099.

Last updated
Was this helpful?