1. Indholdsfortegnelse
2. Introduktion
2.1. Formål
Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af MHD, 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 deployment-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.
2.2. Sammenhæng med øvrige dokumenter
Dette dokument er en del af den samlede dokumentation for MHD.
Dokumentets relation til de øvrige dokumenter er beskrevet i dokumentationsoversigten for MHD.
2.3. Læsevejledning
Læser forventes at have kendskab til Java, Maven, Wildfly, Spring og NSP Access Handler.
2.4. Introduktion til MHD
MHD Snitfladen er defineret i MHD - Adgang, brug og snitflader
MHD er en Java-baseret komponent, der baserer sig på Java 21, WildFly 34.0.0 som applikationsserver, og anvender Jakarta Web Services (Jakarta WS) til eksponering af webservice-endpoints.
Design og arkitektur er beskrevet i MHD - Design- og arkitekturbeskrivelse
3. Opsætning af udviklingsmiljø
I det følgende antages at koden er hentet fra git: https://git.nspop.dk/scm/com/mobile-access-to-health-documents.git
3.1. Krav til software
MHD deployeres til Docker via docker compose:
Derudover er der krav til de anvendte udviklingsværktøjer:
- Maven 3.6.3 eller højere anvendes.
3.2. Bygge komponeten
Man skal bruge Maven til at bygge MHD, hvilket gøres ved at køre kommandoen
|
|
Efter byg kan WAR filer findes her:
|
|
4. Afvikling
Efter byg kan MHD afvikles vha. Docker. For at starte MHD afvikles følgende kommando:
|
./docker-compose -f compose/development/docker-compose.yml build --pull ./docker-compose -f compose/development/docker-compose.yml up -d |
4.1. Beskrivelse af systemdesign
Systemdesign er beskrevet i MHD - Design- og arkitekturbeskrivelse.
5. Beskrivelse af kildekodens strukturering og design
5.1. Kode strukturering
Kildekoden bygges vha Maven, og kildekoden er struktureret som Maven moduler. MHD består af følgende moduler:
| common | Indeholder kode fælles for moduler bl.a. konfiguration og af komponenten |
| dds-client | Indeholder kode til at tilgå dokument delings service (dds) |
| service | Indeholder kode til udstilling af end points |
| integration-test | Indeholder test der kræver en kørende instans |
5.2. Beskrivelse af testsetup
5.3. Unittests
JUnit anvendes til implementering af unit tests og kan afvikles som følger:
|
|
5.4. Integrationstests
Integrationstests afvikles med:
|
|
Hvor følgende gælder:
| test.url | Adresse på MHD'en some man ønsker at integrationstests skal udføres mod. |
| dros.url | Adresse på Dynamisk Request Generator, som benyttes af integrationstesten til at oprette relevante dokumenter i DDS, hvis disse ikke i forvejen eksisterer. |
Hvis man ønsker af afvikle testen op mod en andet miljø f.eks. test1 eller test2, kan man angive det ved at ændre test url
6. Dokument Historik
| 3/4 2025 | Martin Henriksen/SDS | Etablering af dokumentation |
| 27/6 2025 | Thomas Glæsner | Udfyldt |