Formålet med dette dokument er at beskrive, hvordan et udviklingsmiljø til videreudvikling af AO XDS Adaptere, kan sættes op, samt hvordan koden bygges, deployes og testes.
Først beskrives de softwaremæssige krav, der er til udviklingsmiljøet, herunder hvordan kode hentes og bygges. Dernæst beskrives deploymentmiljøet.
Læser forventes at have kendskab til Java softwareudvikling med anvendelse af Maven, Docker og docker-compose.
Hvor der i teksten er angivet <component base> refereres til topniveaufolderen for kildekoden for komponenten.
I det følgende antages at koden er hentet fra SVN: https://svn.nspop.dk/svn/components/ao/
AO XDS Adaptere 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:
Kildekoden bygges vha Apache Maven, og kildekoden er struktureret som Maven moduler. Følgende moduler findes i AO XDS Adaptere:
Modul | Beskrivelse |
---|---|
AO Appointments Provider Stub | Stub til at emulere en bookplan backend. Pakkes som en Wildfly applikation (WAR) |
AO Appointment Stub Integration Test | Integrationstests til AO Appointments Provider Stub |
AO Provider Common | Fælleskode, der benyttes både af AO Document Metadata Provider og AO Document Provider |
AO Provider Cache | Kode til at gemme/hente/slette AO XDS Adapters aftaledokumenter i database |
AO Document Metadata Provider | Modul til implementation af dokumentsøgning (ITI-18) - dvs "registry-delen" af AO XDS Adaptere samt forretningslogik. Modulet har til ansvar at fremfinde dokumentmetadata og reagerer på søgeparametre givet ved forespørgsel på dokumentmetadata. Modulet har yderligere til opgave at danne de konkrete dokumenter svarende til de fremsøgte metadata og gemmer disse dokumenter i AO Provider Cache. |
AO Document Metadata Provider War | Pakker AO Document Providere som en Wildfly applikation (WAR) |
AO Document Metadata Provider Integration Test | Integrationstests til AO Document Metadata Provider. Modulet har til ansvar at fremfinde dokumenter i AO Provider Cache og reagerer på søgeparametre givet ved forespørgsel på dokumenter. |
AO Document Provider | Modul til implementation af dokumenthentning (ITI-43) - dvs "repository-delen" af AO XDS Adaptere samt forretningslogik. Modulet har til opgave at udsøge de forespurgte dokumenter i AO Provider Cache. |
AO Document Provider War | Pakker AO Document Provider som en Wildfly applikation (WAR) |
AO Document Provider Integration Test | Integrationstests til AO Document Provider |
AO Document Sharing Integration Test | Integrationstests for RN og RM udgaver af AO XDS Adaptere. Tester fremsøgning af dokumentreferencer (ITI-18) samt afhentning af dokumenter (ITI-43) |
Ovenstående modulliste opsumerer kodens struktur.
Tre af modulerne producerer installerbare services (WAR filer).
Det drejer sig om følgende:
JAX-WS er anvendt på baggrund af artefakter fra DDS skabt ved kodegenerering ud fra WSDL-filer og XSD-filer.
Man skal bruge Apache Maven til at bygge NAS, hvilket gøres ved at køre kommandoen
|
Efter byg kan WAR filer findes her:
|
Disse tre WAR filer svarer til de beskrevne services i forgående afsnit.
Efter byg kan det være nyttigt at lave en deployering af de genererede services (WAR).
Til udviklingsformål er der udarbejdet en mængde docker-compose setups. Disse ligger i
|
conf angiver, hviklen konfiguration man ønsker at starte (rn = Region Nord, rm = Region Midt).
apd-version angiver, hvilken version af Medcoms profilering af aftaledokumenter (se), der skal anvendes (v11 = version 1.1, v20 = version 2.0).
Det relevante docker-compose setup startes med følgende kommando:
|
Docker-compose setup'et startere både AO XDS Adapter services samt bagvedliggende database service og mock Bookplan service. Når alle services er startet kan WSDL for de deployede AO XDS Adapter services nåes på følgende URL'er:
|
Der er udviklet både unit tests og integrationstests til AO XDS Adaptere. Struktur og afvikling af disse beskrives i det følgende.
Der er udviklet en række unit tests til de forskellige moduler i AO XDS Adaptere.
Maven sørger for afvikling af unit tests som en del af byg af AO XDS Adaptere.
Unit tests kan også køres efter et byg med kommandoen:
|
Hvis man ønsker at få opsamlet testresultaterne (og beregnede test coverage) i en samlet rapport vha Maven plugin'et jacoco, kan følgende kommando anvendes:
|
Denne kommando afvikler unit tests og opsamler test coverage rapporten i følgende directory:
|
Rapporten kan med fordel åbnes i en browser, da den er genereret i både xml og html format.
Der er udviklet en række integrationstests til AO XDS Adapter.
Disse kan være nyttige at afvikle på udviklermaskinen.
Afviklingen forudsætter, at AO XDS Adaptere er bygget og deployeret (ved opstart af docker-compose setup i konfigurationen docker-compose.main.v20.yml) som beskrevet ovenfor.
Denne kommando afvikler integrationstests fra rodfolderen i AO projektet:
|
Bemærk, at det er en bestemt konfiguration, der skal startes (main+APD version 2.0), for at integrationstestene fungerer.
Til beregning af testcoverage anvendes Jacoco. Se beskrivelsen ovenfor.