Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

1. Introduktion

1.1.

...

Formål

Formålet med dette dokument er at beskrive, hvordan et udviklingsmiljø , til videreudvikling af DROS, NXRG kan sættes op, samt hvordan koden bygges, deployes og testes.

...

Dette dokument er en del af den samlede dokumentation for DROSNXRG.

Dokumentets relation til de øvrige dokumenter er beskrevet i dokumentationsoversigten for DROSNXRG.

1.3. 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.

1.4. Dokument Historik


15/3 5 2021Eva TroelsNils Asbjørn Joensen/KITUdarbejdet ved etableringen af DROSNXRG

1.5. Introduktion til

...

NXRG

Alle DROS NXRG services udstiller en SOAP service. Snitfladen er defineret i en WSDL fil og en række XSD filer. 

Alle DROS NXRG services er Java baserede komponenter, der baserer sig på Java 8 og Spring frameworket.

Design og arkitektur er beskrevet: DROS NXRG - Design- og arkitekturbeskrivelse.

2. Opsætning af udviklingsmiljø

I det følgende antages at koden er hentet fra SVN: https://svn.nspop.dk/svn/components/drosnxrg.

2.1. Krav til software

DROS NXRG deployeres vha. docker, hvorfor de alle baserer sig på NSP platformens base image, hvori der findes nødvendigt software til afvikling.

...

Man skal bruge Maven til at bygge DROSNXRG, hvilket gøres ved at køre kommandoen

...


Efter byg kan WAR filer findes her:

./drosnxrg-war/target/drosnxrg.war

3. Afvikling

Der henvises til installationsvejledningen for nærmere instrukser.

3.1. Udviklers workstation

...

docker-compose -f compose/development/docker-compose.yml up --bulid

Når DROS NXRG er startet er, svarer den på:

...

I docker-compose setup i development er tilknytningen til NSP TEST1 XDS registry lavet på følgende måde:

  1. 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
  2. I docker-compose filen for development er registryproxy en opsætning af nginx. Konfigurationen af denne findes i filen compose/configuration/nginx.conf
  3. 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.

3.2. Beskrivelse af systemdesign

Systemdesign er beskrevet i DROS NXRG - Design- og arkitekturbeskrivelse.

4. Beskrivelse af kildekodens strukturering og design

...

Kildekoden bygges vha Maven, og kildekoden er struktureret som Maven moduler. DROS NXRG består af følgende moduler:

drosnxrg-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 Derudover indeholder modulet statiske koder (f.eks. OID for CPR registeret og SOR), der anvendes rundt om i DROSNXRG.

drosnxrg-testutilitiesHjælpeklasser, der både skal bruges af unit tests samt af integrationstests for DROS NXRG ligger her.
drosnxrg-appDROS NXRG service- og forretningsfunktionalitet er samlet her. Se DROS Se NXRG - Design- og arkitekturbeskrivelse for en grundigere beskrivelse af strukturen i dette modul.
drosnxrg-war

Modul, der er ansvarlig for at pakke DROS NXRG som en NSP service - herunder angivelse af modulafhængigheder i deploymentdescriptor.

Indeholder også Dockerfile til selve byg af Docker image.

drosnxrg-qa

Integrationstest for DROSNXRG

drosnxrg-testreportModul til at samle jacoco test reports og beregne samlet test coverage.

...

Integrationstests ligger i modulet drosnxrg-qa og kan afvikles med:

mvn -Plocal,integration-test verify

Dette forudsætter at alle services er startet som angivet i docker-compose setuppet.

Hvis man ønsker af afvikle testen op mod en andet miljø f.eks. test1 eller test2 henvises til DROS NXRG - Testvejledning.