Versions Compared

Key

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

Introduktion

Formål

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æ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/ao/

Krav til software

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:

  • 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 AO XDS Adaptere:

ModulBeskrivelse
AO Appointments Provider StubStub til at emulere en bookplan backend. Pakkes som en Wildfly applikation (WAR)
AO Appointment Stub Integration TestIntegrationstests til AO Appointments Provider Stub
AO Provider CommonFælleskode, der benyttes både af AO Document Metadata Provider og AO Document Provider
AO Provider CacheKode til at gemme/hente/slette AO XDS Adapters aftaledokumenter i database
AO Document Metadata ProviderModul til implementation af dokumentsøgning (ITI-18) - dvs "registry-delen" af AO XDS Adaptere. 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 WarPakker AO Document Providere som en Wildfly applikation (WAR)
AO Document Metadata Provider Integration TestIntegrationstests 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 ProviderModul til implementation af dokumenthentning (ITI-43) - dvs "repository-delen" af AO XDS Adaptere.
AO Document Provider WarPakker AO Document Provider som en Wildfly applikation (WAR)
AO Document Provider Integration TestIntegrationstests til AO Document Provider
AO Document Sharing Integration TestIntegrationstests for RN og RM udgaver af AO XDS Adaptere. Tester fremsøgning af dokumentreferencer (ITI-18) samt afhentning af dokumenter (ITI-43)

Services

Ovenstående modulliste opsumerer kodens struktur.

Tre af modulerne producerer installerbare services (WAR filer).

Det drejer sig om følgende:

  • AO Appointments Provider Stub: Denne service anvendes kun til udvikling og emulerer en bookplan backend til levering af aftaledata.
  • AO Document Metadata Provider War: Denne service implementerer "registry-delen" af AO XDS Adaptere. Dette er et generelt modul, der kan konfigureres til hhv. Region Nord (RN) og Region Midt (RM) ved hjælp af konfigurationsfiler.
  • AO Document Provider War: Denne service implementerer "repository-delen" af AO XDS Adaptere. Dette er et generelt modul, der kan konfigureres til hhv. Region Nord (RN) og Region Midt (RM) ved hjælp af konfigurationsfiler.

Byg af AO XDS Adaptere

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

mvn package


Efter byg kan WAR filer findes her:


./appointmentsstub/appointmentsstub/target/appointmentsstub.war

./xdswrappers/documentmetadataprovider/documentmetadataprovider-war/target/ao-documentmetadataprovider.war

./xdswrappers/documentprovider/documentprovider-war/target/ao-documentprovider.war




Disse tre WAR filer svarer til de beskrevne services i forgående afsnit.

Test af AO XDS Adaptere

Der er udviklet både unit tests og integrationstests til AO XDS Adpatere. 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 AO XDS Adaptere. Disse kan køres med kommandoen

mvn test

Maven sørger for afvikling af unit tests og resultaterne samles op vha cobertura.

Efter afvikling af tests kan resultatet ses i