Page History
| Navitabs | ||||
|---|---|---|---|---|
| ||||
| Table of Contents | ||
|---|---|---|
|
Introduktion
Formål
Formålet med dette dokument er at beskrive, hvordan et udviklingsmiljø til videreudvikling af SXA (Labsvar) 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æsevejledning
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.
Opsætning af udviklingsmiljø
I det følgende antages at koden er hentet fra SVN: https://svn.nspop.dk/svn/components/labsvar/
Krav til software
SXA 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:
- Maven 3.0.3 eller højere anvendes.
- docker-compose version 3.4 eller højere.
Kildekodens struktur og design
Modulopbygning
Kildekoden bygges vha Apache Maven, og kildekoden er struktureret som Maven moduler. Følgende moduler findes i SXA Adaptere:
| Modul | Beskrivelse |
|---|---|
| SXA Lab Report Service Stub | Stub til at emulere en Svareksponeringsservice backend. Pakkes som en Wildfly applikation (WAR) |
| SXA Provider Common | Fælleskode, der benyttes både af SXA Document Metadata Provider og SXA Document Provider |
| SXA Document Metadata Provider | Modul til implementation af dokumentsøgning (ITI-18) - dvs "registry-delen" af SXA Adaptere. Modulet har til ansvar at opbygge dokumentmetadata og reagerer på søgeparametre givet ved forespørgsel på dokumentmetadata dog uden at persistere data. I stedet dannes metadata tilpasset patienten. |
| SXA Document Metadata Provider War | Pakker AO Document Providere som en Wildfly applikation (WAR) |
| SXA Document Metadata Provider Integration Test | Integrationstests til SXA Document Metadata Provider. Modulet har til ansvar at fremfinde metadatadata. |
| SXA Document Provider | Modul til implementation af dokumenthentning (ITI-43) - dvs "repository-delen" af SXA Adaptere. Modulet har til ansvar at hente dokumenter indeholdende laboratoriesvar fra Svareksponeringsservice backend. |
| SXA Document Provider War | Pakker SXA Document Provider som en Wildfly applikation (WAR) |
| SXA Document Provider Integration Test | Integrationstests til SXA Document Provider |
| SXA Document Sharing Integration Test | Integrationstests for SXA Adaptere. Tester fremsøgning af dokumentreferencer (ITI-18) samt afhentning af dokumenter (ITI-43) |
Generelt design
De to Java-webservices Svareksponeringsservice XDS Registry Adapter og Svareksponeringsservice XDS Repository Adapter er implementeret ved brug af komponenter fra documentsharing og Dokumentdelingsservices.
JAX-WS er anvendt på baggrund af artefakter fra DDS skabt ved kodegenerering ud fra WSDL-filer og XSD-filer.
Services
Ovenstående modulliste opsumerer kodens struktur.
Tre af modulerne producerer installerbare services (WAR filer).
Det drejer sig om følgende:
- SXA Lab Report Service Stub: Denne service anvendes kun til udvikling og emulerer en Svareksponeringsservice backend til levering af laboratoriesvar.
- SXA Document Metadata Provider War: Denne service implementerer "registry-delen" af SXA Adaptere. Dette er et generelt modul, der konfigureres ved hjælp af konfigurationsfiler.
- SXA Document Provider War: Denne service implementerer "repository-delen" af SXA Adaptere. Dette er et generelt modul, der kan konfigureres ved hjælp af konfigurationsfiler.
Byg af SXA Adaptere
Man skal bruge Apache Maven til at bygge modulerne, 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.
Deployering af SXA Adaptere
Efter byg kan det være nyttigt at lave en deployering af de genererede services (WAR).
Til udviklingsformål er der udarbejdet et docker-compose setup. Dette ligger i
|
Det relevante docker-compose setup startes med følgende kommando:
|
Docker-compose setup'et startere bådeSXAAdapter services samt bagvedliggende database service og mock Svareksponeringsservice. Når alle services er startet kan WSDL for de deployede SXA Adapter services nåes på følgende URL'er:
| Service WSDL URL |
|---|
| http://localhost:8081/sxa-documentprovider?wsdl |
| http://localhost:8080/sxa-documentmetadataprovider?wsdl |
| http://localhost:8082/sxa-labreportservicestub/SvarEksponering?wsdl |
Test af SXA Adaptere
Der er udviklet både unit tests og integrationstests til SXA Adaptere. Struktur og afvikling af disse beskrives i det følgende.
Unit tests
Der er udviklet en række unit tests til de forskellige moduler i SXA Adaptere.
Maven sørger for afvikling af unit tests som en del af byg af SXA Adaptere.
Unit tests kan også køres efter et byg med kommandoen:
|
Integrations tests
Maven Failsafe plugin anvendes til gennemførelse af integrationstests i projektet.
Der er udviklet en række integrationstests til AO XDS Adapter og disse kan være nyttige at afvikle på udviklermaskinen.
Afviklingen forudsætter, at AO XDS Adaptere er bygget og deployeret (ved opstart af relevant docker-compose setup) som beskrevet ovenfor.
Integrations tests kan også køres efter et byg med kommandoen:
|
Jenkins og Code Coverage
SXA kan bygges med NSP's Jenkins server via følgende job:
https://jenkins.nspop.dk/job/LabSvar_build/
Code coverage trends kan følges på:
https://jenkins.nspop.dk/job/LabSvar_build/jacoco/
Og her fra kan man klikke sig ud på JaCoCo Coverage rapporter for hvert byg.