Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootNAS2 - Yderligere dokumentation
includeroottrue


Table of Contents

Introduktion

Formål

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

...

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 NAS Multiplexer.

Dokumentets relation til de øvrige dokumenter er beskrevet i dokumentationsoversigten for projektet NAS Multiplexer.

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.

Opsætning af udviklingsmiljø

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

Krav til software

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

...

  • Maven 3.0.3 eller højere anvendes.
  • docker-compose version 3.4 eller højere

Bygge WAR filer

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

...

Code Block
./services/multiplexer/target/multiplexer.war

Udviklers workstation

Når man udvikler kan det være praktisk at foretage deploy. Dette kan gøres vha. docker-compose:

...

Når servicen er startet er den at finde på følgende port:

Serviceport
multiplexer
9090

Deres endpoints findes på følgende måde: http://<navn>:<port>/<navn>. 

Beskrivelse af kildekodens strukturering og design

Kode strukturering

Kildekoden bygges vha Apache Maven, og kildekoden er struktureret som Maven moduler. Følgende moduler er support moduler, som inkluderes efter behov:

ModulBeskrivelse
logOpsætning af generel log findes her samt hjælpekode til SLA logning.

Derudover findes alle services som moduler under services.

Beskrivelse af testsetup

Unittests (JUnit)

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

...

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 integration-test modulet:

...