Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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
      Migreringskomponent.

    • odr-datagenerator
      Datageneratorkomponent til brug ifm. migrering.

    • odr-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.

Æ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 databasenoprette de nødvendige database-schemas vha. scriptet compose/database/db/create_db.sql. 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 odrltr-btr-service/src/test/resources/application.properties. De default værdier matcher værdierne i de førnævnte SQL-scripts.

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:

...

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

...

Der er behov for adgange til følgende systemer:

Opsætning af udviklingsmiljø

Al kode findes i SVN: https://svn.nspop.dk/svn/trifork/odr/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 

Kodestruktur

Koden er opdelt i 5 maven-moduler:

  1. odr-schemas: Indeholder de WSDL og XSD-filer som definerer servicens webservice-snitflade. 
  2. odr-service: Indeholder selve service-funktionaliteten, inkl Unit -og integrationsTest
  3. odr-service-wildfly: Indeholder wildfly specifikke elementer
  4. odr-migration: Indeholder al logik til migrering, afhængig af odr-service
  5. 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

...

  1. Installér og start MariaDB

  2. Klon projektet fra SVNhttps://svn.nspop.dk/svn/trifork/odr/

  3. Opret database via script i odr-service/src/test/resources/dbførnævnte SQL-script

  4. For at bygge projektet, foretage unittests samt at bygge war-filer foretages kommandoen: mvn clean install

Opsætning af IntelliJ Idea

Man åbner blot pom.xml fra rodbiblioteket. Efter en mvn clean install bør dependencies være på plads.

...

Deployment med Docker

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.

docker-compose up -d --build