Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootXDSCleanup
includeroottrue



Table of Contents

1       Introduktion

...

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

...

1.4           Dokumenthistorik

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-2022

Version

Dato

Ansvarlig

Beskrivelse

0.8

09-01-2018
KvalitetsITInitiel 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

...

iXDSCleanup - Design- og

...

arkitekturbeskrivelse.

...

Opsætning af udviklingsmiljø

I det følgende antages at koden er hentet

...

3.1           Krav til software

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

registrydeletionjob-0.0.1-SNAPSHOT.jar

...

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

”dependencies" indeholder her "xhive.jar", som indeholder API til at kommunikere med XDB.

"config" indeholder en eksempel-opsætning på en property fil, som skal være på classpath ved kørsel af den færdigbyggede jar-fil.

6.2      Generelt design af RegJob

RegJob består af følgende centrale klasser:

  • XHiveService: Henter liste af uuid på de dokumenter der skal slettes v.h.a. XQuery på XDB. 
  • AppointmentXdsRequestService : Håndterer kommunikation med ITI-snitfladerne:
    • ITI-18: GetAssocationsQuery - For at hente associationer til dokument, disse er krævet input til ITI-62  
    • ITI-18: GetDocumentsQuery - For at hente metadata om dokument (uniqueID og repositortID), disse skal bruges for at slette dokument fra repository
    • ITI-62: RemoveObjectsRequest - For at slette dokumentet
  • Application: Mainklasse der først foretager opslag vha. XHiveService, derefter sletter dokumenter vha. AppointmentXdsRequestService, og til sidst outputter slettede dokumenter i en fil

7       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

7.2           Integrationstests (Failsafe)

Maven Failsafe plugin anvendes til gennemførelse af integrationstests af samtykkewebservices.

Integrationstestene af samtykkeadministration er afhængige af at Min-log-registreringsservicen er deployet.

Det nødvendige testdata læses automatisk på af maven-scriptet, inden integrationstestene afvikles.

Integrationstests 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 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:

Code Block
languagetext
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.

Code Block
languagetext
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.

...