Dette dokument beskriver projektstrukturen Behandlingstestamenteregister-servicen og har derudover til formål at gøre det muligt for andre end den oprindelige leverandør at overtage videreudvikling af projektet. Dokumentet bygger videre på informationen beskrevet i de andre dokumenter tilhørende projektet.
Projektet er opbygget som et Maven multi-module project, hvor nogle moduler kompilerer til jar-filer og andre til war-filer. De nævnes her i den rækkefølge de kompileres:
ltr-btr-schemas
JAX-WS-artifakt generator genererer Java-klasser ud fra projektets WSDL-filer.
ltr-btr-service
Selve servicens funktionalitet.
ltr-migration
Migreringskomponent.
ltr-btr-test-data-creator
Datageneratorkomponent til brug ifm. performancetesting.
For at kunne fungere med DGWS og IDWS forudsættes at DGWS/IDWS Proxy Service også er installeret. Der henvises til guide for udviklere for proxy'en for nærmere beskrivelse af denne.
Version | Dato | Ændring | Ansvarlig |
---|---|---|---|
1.0.2 | 2018-08-31 | Initialt dokument | Trifork |
1.0.14 | 2019-25-09 | Ajourført | Trifork |
For at afvikle unit-tests skal en MariaDB-database være tilgængelig. Dette opnår man lettest ved at køre MariaDB i en Docker-container. Følgende kommando køres fra projektroden:
docker-compose -f compose/development/docker-compose.yml up btrdb
Bemærk: Det kan tage op mod et minut før containeren er klar. De nødvendige databaser bliver oprettet automatisk.
I application.properties-filen i projektet er datasources som default sat til at anvende root-user med tomt password. Database-strukturen bliver automatisk oprettet vha. Flyway SQL-scripter, når unit-testene afvikles.
Datasourcen i testafviklingen auto-konfigureres vha. Spring Boot som anvender database-credentials fra ltr-btr-service/src/test/resources/application.properties.
Projektet skal være fuldt bygget for at lokale dependencies er på plads, og dernæst kan unit tests afvikles med følgende Maven kommando:
mvn clean test
Der genereres desuden en testrapport.
Servicen benytter i udviklingssammenhæng Flyway, hvilket gør at databasen i udviklingsmiljøet automatisk opdateres til gældende version.
XSDerne der eksporteres og benyttes i servicen ligger i modulet ltr-btr-schema. Der genereres JAXB-klasser som defineret i modulets pom.xml
Der er behov for adgange til følgende systemer:
NSP SVN-repository
Dependencies trækkes fra NSP's Nexus-repository: https://nexus.nspop.dk
Al kode findes i NSP SVN.
Efter at projektet er checket ud vil man typisk gøre følgende:
Opsætte udviklingsmiljø (her antages IntelliJ)
Bygge war-filen med Maven og køre tests
Følgende software er nødvendigt for at bygge projektet
En Subversion-klient
Java 8
Maven
MariaDB
Gennemfør følgende steps for at bygge WAR filer:
Installér og start MariaDB
Klon projektet fra SVN
Opret database via førnævnte SQL-script
For at bygge projektet, foretage unittests samt at bygge war-filer foretages kommandoen: mvn clean install
Når man udvikler kan det være praktisk at deploye applikationen lokalt. Dette kan gøres vha. Docker Compose-filen under compose/development/docker-compose.yml.
docker-compose up -d --build