Dette dokument beskriver projektstrukturen i Stamkortregister-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:
skr-schemas
JAX-WS-artifakt generator genererer Java-klasser ud fra projektets WSDL-filer.
skr-service
Selve servicens funktionalitet.
skr-test
Integrationstests.
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.0 | 2018-09-11 | Initialt dokument | Trifork |
1.0.12 | 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 --build
Bemærk: Det kan tage op mod et minut før containeren er klar. De nødvendige databaser bliver oprettet automatisk. Bemærk at projektet skal bygges før ovenstående kommando fungerer, dette gøres med følgende kommando, ligeledes fra projektroden:
mvn clean install -DskipTests=true
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. Eneste forudsætning er at recreate_database.sql script samt recreate_service_user.sql script, som er placeret i skr-service/src/test/resources/db/, er blevet afviklet mod databasen.
På miljøer hvor der skal være mulighed for rollback, benyttes migrerings scripts fra skr-service/src/test/resources/db/migration.
XSDerne der eksporteres og benyttes i servicen ligger i modulet skr-schema. Der genereres JAXB-klasser som defineret i modulets pom.xml
Der er behov for adgange til følgende systemer:
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