Introduktion

Formål

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æsevejledning

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.

Dokumenthistorik


28-02-2022KvalitetsITInitiel udgave.

Introduktion til XDSCleanup

XDSCleanup jobbet består af to war-filer:

  • xdscleanup.war udstiller tre servlets. Disse snitflader er beskrevet i driftsvejledningen.
  • xdscleanup-deprecated.war udstiller to servlets. Disse snitflader er beskrevet i driftsvejledningen.

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.

Opsætning af udviklingsmiljø

I det følgende antages at koden er hentet fra Git: https://git.nspop.dk/projects/COM/repos/simple-xds-cleanup.

Krav til software

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:

  • Maven 3.0.3 eller højere anvendes.
  • docker-compose version 3.4 eller højere

Bygge WAR filer

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

mvn package


Efter byg kan WAR filer findes her:

./cleanup-war/target/xdscleanup.war

Afvikling

Der henvises til installationsvejledningen for nærmere instruktioner.

Udviklers workstation

Når man udvikler kan det være praktisk at foretage lokal deployment.

Dette kan gøres vha. docker-compose:

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

Beskrivelse af systemdesign

Systemdesign er beskrevet i XDSCleanup - Design- og arkitekturbeskrivelse.

Beskrivelse af kildekodens struktur

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-commonDiverse hjælpeklasser.
cleanup-testreportModul 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-cleanupFunktionalitet til sletning af dokumenter fra OpenXDS.

Beskrivelse af testsetup

Unittests (JUnit)

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:

mvn test

Hvis der derimod laves en verify, så vil der også blive genereret code coverage, hvor fremkommende rapport kan ses itcleanup-estreport/target/site/jacoco-aggregate/index.html

Integrationstests

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)

Testene kan også afvilkes mod test miljøerne ved at sætte argumentet environment. F.eks.

mvn verify -pl cleanup-qa -Pintegration-test -Denvironment=test1

Der er følgende muligheder for test miljøer:

MiljøBeskrivelse
localTesten køres mod et lokalt docker-compose setup (denne vælges automatisk hvis environment argumentet ikke sættes).
test1Testen køres mod service der er deployet på test1.
test2Testen køres mod service der er deployet på test2.
  • No labels