Page History
Table of Contents |
---|
Introduktion
Formål
Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af DROS, kan sættes op, samt hvordan koden bygges, deployes og testes.
...
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
1/3 2021 | Eva Troels/KIT | Udarbejdet ved etableringen af DROS |
Introduktion til DROS
Alle DROS services udstiller en SOAP service. Snitfladen er defineret i en WSDL fil og en række XSD filer.
...
Man skal bruge Maven til at bygge DROS, hvilket gøres ved at køre kommandoen
|
Efter byg kan WAR filer findes her:
|
Afvikling
Der henvises til installationsvejledningen for nærmere instrukser.
...
Dette kan gøres vha. docker-compose:
|
|
Når DROS er startet er, svarer den at finde på følgende url'er:
...
iti-41 xxx
på:
- HelbredsURL: Se DROS - Driftsvejledning
- Services: Se DROS - Guide til anvendere
NB! I udviklingssetup'et peges der på det på NSP TEST1 installerede OpenText registry. Dette gøres for, at svarene for DROS bliver korrekte, også i development setup. Integrationstestene kan derfor køres mod development. Det er nødvendigt, at docker-compose setup (og integrationstesten) afvikles på en maskine, der er whitelistet til at tilgå NSP TEST1 XDS registry.
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
...
Kildekoden bygges vha Maven, og kildekoden er struktureret som Maven moduler. DROS består af følgende moduler:
dros-xds |
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. | |
dros-testutilities | Hjælpeklasser, der både skal bruges af unit tests samt af integrationstests for DROS ligger her. |
dros-app |
DROS service- og forretningsfunktionalitet er samlet her. Se DROS - Design- og arkitekturbeskrivelse for en grundigere beskrivelse af strukturen i dette modul. |
dros-war |
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. |
dros-qa |
Integrationstest for DROS | |
dros-testreport | Modul til at samle jacoco test reports og beregne samlet test coverage. |
Beskrivelse af testsetup
Unittests (JUnit)
...
Unit tests afvikling under byg vha jacoco plugin for Maven, men kan separat afvikles ved at køre:
|
Hvis der derimod laves en verify
, så vil der også blive genereret code coverage, hvor fremkommende rapport kan ses i testreport/target/site/jacoco-aggregate/index.html
Integrationstests
Integrationstests ligger i modulet dros-qa og kan afvikles
...
med:
|
test
Dette afvikles op mod indlejrede udgaver af DROS. Hvis man derimod ønsker at afvikle testen op mod det kørende udviklingsmiljø (docker-compose setup), så kan man bruge development profilen:
mvn -Pdevelopment verify
|
Dette forudsætter at alle services er startet som angivet i docker-compose setuppet.
...