Page History
| Navitabs | ||
|---|---|---|
| ||
Overblik
Dette dokument beskriver projektstrukturen i Organdonorregister-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:
- odr-parent
odr-schemas
JAX-WS-artifakt generator genererer Java-klasser ud fra projektets WSDL-filer.odr-service
Selve servicens funktionalitet.- odr-service-wildfly
Wildfly-specifik funktionalitet. - odr-migration
Migreringskomponenttest-data-creator
Datageneratorkomponent til brug ifm. performancetesting. - odr- datagenerator
Datageneratorkomponent.
...
- common
Indeholder fælles funktionalitet der deles af de øvrige maven moduler. - odr-operations
Indeholder de indbyggede baggrundsjobs - odr-integrations
Indeholder funktionalitet til at kalde de services der benyttes af servicen.
- common
Ændringslog
Version | Dato | Ændring | Ansvarlig |
|---|---|---|---|
1.0.0 | 2018-08-30 | Initialt dokument | Trifork |
Afvikling af unit-tests
For at afvikle unit-tests skal en MariaDB-database være tilgængelig.
I udviklingssammenhæng og ved unit-tests kan man nøjes med én databasebruger og én database. Disse kan oprettes vha. scripterne recreate_service_user.sql og recreate_database.sql som er lokaliseret under odr-service/src/test/resources/db. Derefter kan Flyway automatisk initialisere databasen.
Datasourcen i testafviklingen auto-konfigureres vha. Spring Boot som anvender database-credentials fra odr-service/src/test/resources/application.properties. De default værdier matcher værdierne i de førnævnte SQL-scripts.
| 1.0.13 | 2019-25-09 | Ajourført | Trifork |
| 1.0.16 | 2020-05-25 | Tilføjet byg vha. Docker | KIT |
Afvikling af unit-tests
Projektet bygges og 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 testinstall
Der genereres desuden en testrapport.
Ved afvikling af unit-tests, anvendes en in-memory database, som automatisk startes op, når unit-tests køres. Det er derfor ikke nødvendigt at starte en ekstern database op ifm. unit-test.
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.
Databasevedligehold
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 odr-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 odr-service/src/test/resources/db/migration.
XSD-vedligehold
XSDerne der eksporteres og benyttes i servicen ligger i modulet organdonor-schema. Der genereres JAXB-klasser som defineret i modulets pom.xml
Adgange
Der er behov for adgange til følgende systemer:
- NSP SVN-repository for ODR: https://svn.nspop.dk/svn/trifork/odr/
- Dependencies trækkes fra NSP's Nexus-repository: https://nexus.nspop.dk
Opsætning af udviklingsmiljø
Al kode findes i SVNNSP Git: https://svngit.nspop.dk/svnscm/trifork/odr/com/organdonorregister-service.git
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
Kodestruktur
Koden er opdelt i 5 maven-moduler:
- odr-schemas: Indeholder de WSDL og XSD-filer som definerer servicens webservice-snitflade.
- odr-service: Indeholder selve service-funktionaliteten, inkl Unit -og integrationsTest
- odr-service-wildfly: Indeholder wildfly specifikke elementer
- odr-migration: Indeholder al logik til migrering, afhængig af odr-service
- odr-datagenerator: Bruges kun i test-sammenhæng til at generere realistiske data og datamængder
tests
Bygge WAR filer
Følgende software er nødvendigt for at bygge projektet:
...
- Git
Java 8
Maven
...
Gennemfør følgende steps for at bygge WAR filer:
...
- Klon projektet fra
...
- Git
- git clonehttps://
...
...
...
Opret database via script i odr-service/src/test/resources/db
...
For at bygge projektet, foretage unittests samt at bygge war-filer foretages kommandoen: mvn clean install
- Byg projektet
- mvn clean install
Deployment med Docker
Opsætning af IntelliJ Idea
Man åbner blot pom.xml fra rodbiblioteket. Efter en mvn clean install bør dependencies være på plads.
...
Når man udvikler kan det være praktisk at deploye applikationen på en lokal Wildfly server, da det er denne applikationsserver som bruges i NSP produktionsmiljø. Der henvises til Installationsvejledning (ODR) for nærmere instrukser.lokalt. Dette kan gøres vha. Docker Compose-filen under compose/development/docker-compose.yml.
| Code Block |
|---|
docker-compose up -d --build |
Diagram til overblik
I forbindelse med udvikling af notifiationsjobbet til afsendelse af digital post, er følgende diagram udarbejdet. Det er sat ind her, da det kan bidrage til en forståelse af, hvordan logikken fungerer på tværs af de forskellige operationer jobbet har.
| Gliffy Diagram | ||||||
|---|---|---|---|---|---|---|
|