1. Indholdsfortegnelse
2. Introduktion
2.1. Formål
Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af DPA, 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 DPA.
Dokumentets relation til de øvrige dokumenter er beskrevet i dokumentationsoversigten for DPA.
2.3. Læsevejledning
Læser forventes at have kendskab til Java, Maven og Spring.
2.4. Introduktion til DPA
DPA Snitfladen er defineret i en wsdl-fil og tilhørende xsd-filer i /schemas/src/main/resources/wsdl.
DPA er Java baserede komponenter, der baserer sig på Java 21 og Spring frameworket.
Design og arkitektur er beskrevet i DPA - 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/digital-post-adapter.git
3.1. Krav til software
DPA deployeres vha. Docker.
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 DPA, hvilket gøres ved at køre kommandoen
|
|
Efter byg kan WAR filer findes her:
|
|
4. Afvikling
Efter byg kan DPA afvikles vha. Docker.
For at starte DPA afvikles følgende kommando:
cd compose/development
docker compose up -d
Når DPA er startet, svarer den på:
- Services: Se DPA - Guide til anvendere
4.1. Beskrivelse af systemdesign
Systemdesign er beskrevet i DPA - 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. DPA består af følgende moduler:
| integrationtest | Indeholder integrationstest af servicen |
| schemas | Indeholder snitfladen |
| service | Indeholder selve servicen |
5.2. Beskrivelse af testsetup
5.3. 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 Maven, og kan 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
5.4. Integrationstests
Integrationstests ligger i modulet integrationtest og kan afvikles med:
|
|
Dette forudsætter at alle services er startet som angivet i Afvikling
Hvis man ønsker af afvikle testen op mod en andet miljø f.eks. test1 eller test2 henvises til DPA - Testvejledning.
6. Dokument Historik
| 3/4 2025 | Martin Henriksen/SDS | Etablering af dokumentation |
| 6/6 2025 | Markus Andreassen/Trifork | Udfyldelse af dokumentation |