1 Introduktion
1.1 Formål
Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af registry deletion job (herefter RegJob) , kan sættes op, samt hvordan koden bygges, deployes og testes.
1.3 Læsevejledning
Læser forventes at have kendskab til Java softwareudvikling med anvendelse af Maven.
1.4 Dokumenthistorik
Version | Dato | Ansvarlig | Beskrivelse |
0.8 | 09-01-2018 | KvalitetsIT | Initiel udgave |
2 Introduktion til RegJob
RegJob er et simpelthen main-program, der kalder to services; en service til at foretage et opslag i XDB-databasen for at finde dokumenter der skal slettes, og en service til at foretage sletningen via ITI-snitfladerne
RegJob er en Java baseret komponent, der baserer sig på Java 8 og Spring frameworket. Der anvendes Spring Boot som konfiguration og konventionsværktøj omkring Spring Frameworket.
Design og arkitektur er beskrevet: RegJob - Design og arkitektur.
3 Opsætning af udviklingsmiljø
I det følgende antages at koden er hentet ned fra nspop SVN.
3.1 Krav til software
Java 8 og Maven 3.0.3 eller højere anvendes.
3.2 Bygge JAR filen
Man skal bruge Apache Maven til at bygge RegJob, hvilket gøres ved at køre kommandoen
$ mvn clean install
I ”target” folderen vil der efterfølgende ligge en kompileret JAR fil ved navn
registrydeletionjob-0.0.1-SNAPSHOT.jar
5 Beskrivelse af systemdesign
Systemdesign er beskrevet i RegJob - Design og arkitektur.
6 Beskrivelse af kildekodens strukturering og design
6.1 Kode strukturering
Kildekoden bygges vha Apache Maven, og kildekoden er struktureret som Maven moduler, som vist
nedenfor.
├── registrydeletionjob
│ ├── config
│ ├── pom.xml
│ └── src
│ └── dependencies
”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
7.1 Unittests (JUnit)
JUnit anvendes til implementering af unit tests. Der er kontinuert gennemført unit tests på alle komponenter i projektet.
Unit tests kan 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:
mvn verify –Pexternal-test