Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø til videreudvikling af XDSCleanup kan sættes op, samt hvordan koden bygges, deployes og testes.
Læseren 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.
28-02-2022 | KvalitetsIT | Initiel udgave. |
XDSCleanup jobbet består af to war-filer:
Alle NXRG services er Java baserede komponenter, der baserer sig på Java 8 og Spring frameworket.
Design og arkitektur er beskrevet i XDSCleanup - Design- og arkitekturbeskrivelse.
I det følgende antages at koden er hentet fra Git: https://git.nspop.dk/projects/COM/repos/simple-xds-cleanup.
XDSCleanup 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:
Man skal bruge Maven til at bygge XDSCleanup, hvilket gøres ved at køre kommandoen
|
Efter byg kan WAR filer findes her:
|
Der henvises til installationsvejledningen for nærmere instruktioner.
Når man udvikler kan det være praktisk at foretage lokal deployment.
Dette kan gøres vha. docker-compose:
|
Systemdesign er beskrevet i XDSCleanup - Design- og arkitekturbeskrivelse.
Kildekoden bygges vha Maven, og kildekoden er organiseret i Maven-moduler. XDSCleanup består af følgende moduler:
cleanup-operations | Funktionalitet der er fælles for sletning fra registry og repository og indeholder servlets til oprydning af dokumenter i NXRG/OpenXDS. |
cleanup-deprecated | Funktionalitet til sletning af udløbne aftale-dokumenteri NXRG. |
cleanup-common | Diverse hjælpeklasser. |
cleanup-testreport | Modul der genererer Jacoco testrapport. |
cleanup-war | Modul, der er ansvarlig for at pakke XDSCleanup som en NSP service - herunder angivelse af modulafhængigheder i deployment descriptor. Indeholder også Dockerfile til selve byg af Docker image. |
nxrg-cleanup | Funktionalitet til sletning af dokumentmetadata fra NXRG. |
openxds-cleanup | Funktionalitet til sletning af dokumenter fra OpenXDS. |
JUnit anvendes til implementering af unit tests.
Unit tests afvikles 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 cleanup-testreport/target/site/jacoco-aggregate/index.html
Integrationstestene er implementeret vha Cucumber og JUnit i modulet cleanup-qa.
Afvikling af Integrationstests aktiveres via Maven med følgende kommando:
mvn verify -pl cleanup-qa -Pintegration-test |
Dette vil afvikle integrationstestene mod en lokalt kørende XDSCleanup. (Udviklers workstation)
Hvis man ønsker af afvikle testen op mod en andet miljø f.eks. test1 eller test2 henvises til XDS cleanup Test vejledning.