Introduktion

Formål

Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af DROS, kan sættes op, samt hvordan koden bygges, deployes og testes.

Først beskrives de softwaremæssige krav, der er til miljøet, samt hvordan kode hentes og bygges. Dernæst beskrives deploymentmiljøet.

Kodestrukturen, kodemæssige afhængigheder til tredjeparts moduler og de forskellige servicemodulers ansvar og design beskrives sidst i dette dokument sammen med testdesign.

Sammenhæng med øvrige dokumenter

Dette dokument er en del af den samlede dokumentation for DROS.

Dokumentets relation til de øvrige dokumenter er beskrevet i dokumentationsoversigten for DROS.

Læsevejledning

Læser forventes at have kendskab til Java softwareudvikling med anvendelse af Maven og WildFly. Derudover forventes kendskab til docker-compose.

Hvor der i teksten er angivet <component base> refereres til topniveaufolderen for kildekoden for komponenten.

Dokument Historik

1/3 2021Eva Troels/KITUdarbejdet ved etableringen af DROS

Introduktion til DROS

Alle DROS services udstiller en SOAP service. Snitfladen er defineret i en WSDL fil og en række XSD filer. 

Alle DROS services er Java baserede komponenter, der baserer sig på Java 8 og Spring frameworket.

Design og arkitektur er beskrevet: DROS - Design- og arkitekturbeskrivelse.

Opsætning af udviklingsmiljø

I det følgende antages at koden er hentet fra SVN: https://svn.nspop.dk/svn/components/dros.

Krav til software

DROS deployeres vha. docker, hvorfor de alle baserer sig på NSP platformens base image, hvori der findes nødvendigt software til afvikling.

Derudover er der krav til de anvendte udviklingsværktøjer:

Bygge WAR filer

Man skal bruge Maven til at bygge DROS, hvilket gøres ved at køre kommandoen

mvn package


Efter byg kan WAR filer findes her:

./dros-war/target/dros.war

Afvikling

Der henvises til installationsvejledningen for nærmere instrukser.

Udviklers workstation

Når man udvikler kan det være praktisk at foretage lokal deployment.

Dette kan gøres vha. docker-compose:

docker-compose -f compose/development/docker-compose.yml up --bulid


Når DROS er startet er den at finde på følgende url'er:

iti-41 xxx
http://localhost:8060

Beskrivelse af systemdesign

Systemdesign er beskrevet i DROS - Design- og arkitekturbeskrivelse.

Beskrivelse af kildekodens strukturering og design

Kode strukturering

Kildekoden bygges vha Maven, og kildekoden er struktureret som Maven moduler. DROS består af følgende moduler:

dros-xdsTODO
dros-appTODO
dros-warTODO
dros-qaTODO

Beskrivelse af testsetup

Unittests (JUnit)

JUnit anvendes til implementering af unit tests. Der er kontinuert gennemført unit tests på alle komponenter i projektet.

Unit tests afvikling under byg, men kan separat afvikles ved at køre:

mvn test

Hvis der derimod laves en verify, så vil der også blive genereret code coverage, hvor fremkommende rapport kan ses i testreport/target/site/jacoco-aggregate/index.html

Integrationstests

Integrationstests kan afvikles ved at køre følgende under qa modulet:

mvn test

Dette afvikles op mod indlejrede udgaver af DROS. Hvis man derimod ønsker at afvikle testen op mod det kørende udviklingsmiljø (docker-compose setup), så kan man bruge development profilen:

mvn -Pdevelopment verify

Dette forudsætter at alle services er startet som angivet i docker-compose setuppet.

Hvis man ønsker af afvikle testen op mod en andet miljø f.eks. test1 eller test2 henvises til DROS - Testvejledning.