Page History
...
Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af DROSGM-BFF, kan sættes op, samt hvordan koden bygges, deployes og testes.
Først beskrives de softwaremæssige krav, der er til miljøet, samt hvordan kode hentes og bygges. Dernæst beskrives deploymentmiljøetdeployment-miljøet.
Kodestrukturen, kodemæssige afhængigheder til tredjeparts moduler og de forskellige servicemodulers ansvar og design beskrives sidst i dette dokument sammen med testdesign.
...
Dette dokument er en del af den samlede dokumentation for GM-BFF.
Dokumentets relation til de øvrige dokumenter er beskrevet i dokumentationsoversigten for for GM-BFF.
Læsevejledning
Læser forventes at have kendskab til Java softwareudvikling med anvendelse af Maven og WildFly. Derudover forventes kendskab til Docker samt docker-compose.Hvor der i teksten er angivet <component base> refereres til topniveaufolderen for kildekoden for komponenten....
Dokument Historik
| 13/3 2021 | Eva Troels/KIT | 4 2025 | Martin Henriksen/SDS | Etablering af dokumentationUdarbejdet ved etableringen af DROS |
Introduktion til
...
GM
GM-BFF Alle DROS services udstiller en SOAP service. Snitfladen er defineret i en WSDL fil og en række XSD filer. ...
GM-BFF Alle DROS services er Java baserede komponenter, der baserer sig på Java 8 21 og Spring ??? frameworket.
Design og arkitektur er beskrevet: DROS - Design- og arkitekturbeskrivelse ....
Opsætning af udviklingsmiljø
I det følgende antages at koden er hentet fra SVNgit: https://svngit.nspop.dk/svnscm/components/dros.bff/min-graviditet-backend-for-frontend.git
Krav til software
DROS GM-BFF deployeres vha. docker, hvorfor de alle baserer sig på NSP platformens base image, hvori der findes nødvendigt software til afvikling...
Derudover er der krav til de anvendte udviklingsværktøjer:
- Maven 3.0.3 ??? eller højere anvendes.
- docker-compose version 3.4 eller højere
...
Bygge komponeten
Man skal bruge Maven til at bygge DROSGM-BFF, hvilket gøres ved at køre kommandoen
...
|
Afvikling
...
Efter byg kan GM-BFF afvikles vha. .... Til dette formål findes ....
For at starte GM-BFF afvikles følgende kommando:
Udviklers workstation
Når man udvikler kan det være praktisk at foretage lokal deployment.
Dette kan gøres vha. docker-compose. ....:
...
docker-compose -f compose/development/docker-compose.yml up --build
Når DROS er startet erNår GM-BFF er startet, svarer den på:
...
:
...
- Services: Se DROS - Guide til anvendere
...
...
- .
...
- .
...
I docker-compose setup i development er tilknytningen til NSP TEST1 XDS registry lavet på følgende måde:
- OpenXDS repository (openxds-server) peger på registry url http://registryproxy:80/registry/services/xds-iti42 gennem opsætning af følgende ENV variable: XDS_REGISTRY_HOST, XDS_REGISTRY_PORT og DS_REGISTRY_URL
- I docker-compose filen for development er registryproxy en opsætning af nginx. Konfigurationen af denne findes i filen compose/configuration/nginx.conf
- I denne konfigurationsfil (nginx.conf) er https://test1-cnsp.ekstern-test.nspop.dk:8443 defineret som målet for requests.
Ovenstående setup blev indført, da der var problemer med at få OpenXds til at tale direkte med XDS registry på TEST1 pga issues med HTTPS.
Beskrivelse af systemdesign
Systemdesign er beskrevet i DROS GM-BFF - Design- og arkitekturbeskrivelse.
Beskrivelse af kildekodens strukturering og design
...
Kildekoden bygges vha Maven, og kildekoden er struktureret som Maven moduler. DROS GM-BFF består af følgende moduler:
...
Sætter dependencies op i forhold til openehealth framework (en række exclusions er tilrådelige for at anvende dette framework på NSP).
Modulet indeholder også konfigurationsklasse til konfiguration af ITI-backends. Dette anvendes både af internt af DROS (til NSP XDS backends) samt til integrationstestene for DROS.
Derudover inderholder modulet statiske koder (f.eks. OID for CPR registeret og SOR), der anvendes rundt om i DROS.
...
...
Modul, der er ansvarlig for at pakke DROS som en NSP service - herunder angivelse af modulafhængigheder i deploymentdescriptor.
Indeholder også Dockerfile til selve byg af Docker image.
...
Integrationstest for DROS
...
Beskrivelse af testsetup
Unittests
...
??? JUnit anvendes til implementering af unit tests. Der er kontinuert gennemført unit tests på alle komponenter i projektet.
Unit tests afvikling under byg vha jacoco ??? plugin for Maven, men kan separat afvikles ved at køre:
...
Integrationstests ligger i modulet dros-qa ??? og kan afvikles med:
|
Dette forudsætter at alle services er startet som angivet i docker-compose setuppet.??? setuppet
Hvis man ønsker af afvikle testen op mod en andet miljø f.eks. test1 eller test2 henvises til DROS GM-BFF - Testvejledning.