Page History
Navitabs | ||||
---|---|---|---|---|
| ||||
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
KvalitetsIT | Initiel 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
...
...
...
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
...
|
...
|
Efter byg kan WAR filer findes her:
|
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:
|
registrydeletionjob-0.0.1-SNAPSHOT.jar
...
Beskrivelse af systemdesign
Systemdesign er beskrevet i XDSCleanup - Design- og
...
...
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-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. |
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:
|
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
mvn verify -pl cleanup-qa -Pintegration-test -Denvironment=test1 |
Der er følgende muligheder for test miljøer:
Miljø | Beskrivelse |
---|---|
local | Testen køres mod et lokalt docker-compose setup (denne vælges automatisk hvis environment argumentet ikke sættes). |
test1 | Testen køres mod service der er deployet på test1. |
test2 | Testen køres mod service der er deployet på test2. |
...