Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootPlatformsservices (NAP) - Leverancebeskrivelse
includeroottrue


Table of Contents

Introduktion

Formål

Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af NAP platform services, skal sættes op, kodens struktur, samt hvordan koden bygges, deployes og testes.

Forudsætninger

Krav til software:

Software

Version

Java8
DockerGerne nyeste
node10+

Generelt om udviklingsmiljø for projekterne

Det lokale udviklingsmiljø på projekter er opsat med docker-compose.

For at kunne køre de compose filer, der bliver beskrevet nedenfor, kræves et docker netværk kaldet nap_net. Hvis dette ikke allerede er lavet kør "docker network create nap_net".

I hvert projekt ligger der en compose mappe, hvori der findes forskellige compose filer til udvikling, test og release.


Udvikling

Vær opmærksom på kun at køre en service af samme navn, fx kun køre en nap-test-web. Hvis der skiftes setup, stop altid servicen og kør "docker-compose down".


Der udstilles ingen porte på docker-hosten, og alt trafik routes således igennem en lokal reverse proxy https://svn.nspop.dk/svn/components/nap/nap-compose/ som også er på Docker netværket nap_net og eksponeret på port 8080 på localhost.


Ved hhv nap-admin-web, nap-lobby-web og nap-test-web, bliver ./src folderen og konfigurationsfiler fra compose/configuration "volume-mappet", hvilket betyder, at ændringer i kildekoden bliver kompileret og deployet med det samme. 

Hvis dependencies ændres skal containeren bygges igen, ellers er det fremover nok at køre `docker-compose up` når services skal startes.


Test

Jenkins bygger og deployer i snapshot versioner af NSPs wildfly container. Dette byg kan testes ved at køre at `docker-compose up` i compose/test. 

Applikationen kan nåes på samme url som ovenfor. 


Release

Bruges udelukkende i produktions øjemed.

nap-admin-web

Indeholder et angular projekt, der har til formål at vise og håndtere alle tilgængelig projekter.

Projektet bruger standard strukturen for et Angular projekt, dvs. alt koden ligger inde i src/ mappen.

Nap-admin-web gør brug af nap-administration backenden, til at vise projekterne. 

Funktionalitet

Projektet har to faner, hhv "Projekter" og "Hjælp".

Projekter viser alle projekter. Hvert projekt har titel, samt et versions nummer. Hvert projekt kan foldes ud ved at trykke på "mere", som så viser den tilknyttet web-app. Web-app'en viser titel, beskrivelse, version, udgivelses dato, url den ligger på, samt hvilke versioner af event kataloget den understøtter. 

Hjælp giver et link til at oprette en support sag. 

Udviklingsmiljø

Installer afhængigheder

Installer dependencies ved at køre npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/

Udviklingserver

For at starte en web pack dev server i docker køres "docker-compose build && docker-compose up" fra compose/develop mappen.


Applikationen kan nu nåes  http://localhost:8080/nap/admin/web/, hvis nap-compose reverse proxy er opsat som beskerevet tidligere, ellers på http://Localhost:4500.


Hvis nap-administration backenden ikke skal køre, kan den "mockes" væk, således der vises dummy projekter. Dette kan gøres ved at køre "npm run start:mock" hvis det køres lokalt, ellers kan der i compose/develop ændres i docker-compose.yml "Command" parameter, hvor der tilføjes "--configuration=mock"

CI

Jenkins filen beskriver jenkins pipelinen.

Der kan laves snapshots og release-candidates fra jenkins.

Byg

Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.

Linting

Kør "npm run lint" for linting.

Test

Kør "npm run test" for at afvikle unit tests - output vil ligge I coverage/ mappen. 

Dokumentation

For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.

nap-lobby-web

Indeholder et angular projekt, der har til formål at vise projekter som det givne LPS system har rettigheder til. Projektet bruger standard strukturen for et Angular projekt, dvs. alt koden ligger inde i src/ mappen. 

Nap-lobby-web gør brug af nap-administration backenden, til at hente de projekter der er til rådighed.

Funktionalitet

Projektet har to faner, hhv "Projekter" og "hjælp". 

Projekter viser alle de projekter, som der er rettigheder til. Hvert projekt har titel, samt et versions nummer. Hvert projekt kan foldes ud ved at trykke på "mere", som så viser den tilknyttet web-app. Web-app'en viser titel, beskrivelse, version, udgivelses dato, url den ligger på, samt hvilke versioner af event kataloget den understøtter. 

Hjælp beskriver hvad applikation omhandler, samt et link til at oprette en support sag. 

Udviklingsmiljø

Installer afhængigheder

Installer dependencies ved at køre npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/

Udviklingserver

For at starte en web pack dev server i docker køres "docker-compose build && docker-compose up" fra compose/develop mappen.


Applikationen kan nu nåes  http://localhost:8080/nap/lobby/web/, hvis nap-compose reverse proxy er opsat som beskerevet tidligere, ellers på http://Localhost:4200.


Hvis nap-administration backenden ikke skal køre, kan den "mockes" væk, således der vises dummy projekter. Dette kan gøres ved at køre "npm run start:mock" hvis det køres lokalt, ellers kan der i compose/develop ændres i docker-compose.yml "Command" parameter, hvor der tilføjes "--configuration=mock"

CI

Jenkins filen beskriver jenkins pipelinen.

Der kan laves snapshots og release-candidates fra jenkins.

Byg

Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.

Linting

Kør "npm run lint" for linting.

Test

Kør "npm run test" for at afvikle unit tests - output vil ligge I coverage/ mappen. 

Dokumentation

For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.

nap-test-web

Indeholder et angular projekt, der har til formål at være test-platform for værtssystemsudvikler.

Funktionalitet

Projektet har til hensigt at teste der kan sendes og modtages beskender igennem NAP sdk'erne.

Der er separate tests cases, som kan køres enkeltvis eller samlet.  

Udviklingsmiljø

Installer afhængigheder

Installer dependencies ved at køre npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/

Udviklingserver

For at starte en web pack dev server i docker køres "docker-compose build && docker-compose up" fra compose/develop mappen.

Applikationen kan nu nåes  http://localhost:8080/nap/test/web/, hvis nap-compose reverse proxy er opsat som beskerevet tidligere, ellers på http://Localhost:4300.

CI

Jenkins filen beskriver jenkins pipelinen.

Der kan laves snapshots og release-candidates fra jenkins.

Byg

Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.

Linting

Kør "npm run lint" for linting.

Dokumentation

For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.

nap-administration

nap-administration fungerer som den administrative service for NAP projekter og webapplikationer. 

Funktionalitet

nap-administration indeholder 2 REST services for projekter og webapplikationer og håndterer de enkelte vært-/ LPSsystemers projektrettigheder. 

Udviklingsmiljø

Installer afhængigheder

Installer dependencies ved at "mvn install". 

Udviklingserver

For at starte en wildfly server til udvikling køres "docker-compose build && docker-compose up" fra compose/develop mappen.

Applikationen kan nu nåes internt i docker på netværket nap_net på  http://napadmin:8080/, og localhost:8080/nap/admin/services/main,  hvis nap-compose reverse proxy er opsat som beskerevet tidligere.

CI

Jenkins filen beskriver jenkins pipelinen.

Der kan laves snapshots og release-candidates fra jenkins.

Test

JUnit anvendes til implementering af unit tests. Der er kontinuert gennemført unit tests på alle komponenter i projektet.
Unit tests kan afvikles ved at køre: `mvn test` og Coverage rapport generes med maven-surefire og publiceres med jacoco.

Dokumentation

For at generere dokumentation til koden, kør "npm run doc". Dokumentation ligger i docs/ mappen.

Debugger

Der kan attaches en JVM debugger på localhost:8878 med `-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8788`

nap-host-java

nap-host-java er en tyk java klient. Den fungerer som et eksempel på et værtssystem, egnet som test-platform for gæstesystemudviklere, samt som et implementations eksempel for værtsystems- / LPSudviklere

Funktionalitet

Applikationen starte med at vise en login dialog. Når der er angivet et gyldigt login, se man et eksempel på et værtssystem. 

Applikationen viser 4 faner, hvor 3 af dem har screenshots som billeder (for at simulere et værtssytem), men den sidste fane "Afprøvningsløsning", indeholder nap-lobby-web, som viser de tilgængelig projekter.

Det er derfor vigtigt at nap-lobby-web køre samtidigt.  

Udviklingsmiljø

Installer afhængigheder

Installer dependencies ved at "mvn install". 

Udviklingserver

For at starte applikationen køres main fra Launcher klassen.  

CI

Jenkins filen beskriver jenkins pipelinen.

Der kan laves snapshots og release-candidates fra jenkins.

Test

JUnit anvendes til implementering af unit tests. Der er kontinuert gennemført unit tests på alle komponenter i projektet.
Unit tests kan afvikles ved at køre: `mvn test` og Coverage rapport generes med maven-surefire og publiceres med jacoco.

Debugger

Der kan attaches en JVM debugger på localhost:8878 med `-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8788`