Formål

Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af SEAL.JAVA services, kan sættes op, samt hvordan koden bygges, deployes og testes.
Først beskrives de softwaremæssige krav, der er til miljøet, samt hvordan kode hentes og bygges. Dernæst beskrives deploymentmiljøet.

Opsætning

Siden release 2.5.0 har Seal.java krævet Java 1.8  for at bygge

Kildekode

Kildekoden til Seal.java er efter version 2.5.11 flyttet til libraries repository  på NSPOPs subversion.

https://svn.nspop.dk/svn/libraries/sosi-seal/

Her vil fremtidige udgaver af koden blive versioneret. Udgaverne for version 2.5.9, 2.5.10 og 2.5.11 er også blevet flyttet til libraries  og kan findes her:

https://svn.nspop.dk/svn/libraries/sosi-seal/tags/

Distribution

De binære pakker er tilgængelige igennem NSPOPs Nexus (pakke manager):

https://nexus.nspop.dk/nexus/service/rest/repository/browse/public/dk/sosi/seal/seal/

Her findes også SNAPSHOT udgaver, som kan bruges under udvikling af funktionalitet, der skal testes inden release.

Bygge og unittest

Koden bygges vha. Maven.

Følgende bruges til at bygge Seal.java:

mvn -f modules/pom.xml package install

Unitests afvikles under byg, men kan også kaldes selvstændigt vha.:

mvn -f modules/pom.xml test


Udvikling

Herunder vejledning til udviklingen i forskellige områder af Seal.java

parametriserede tests

Vi bruger JUnit 4 til at teste i Seal.java og vil gerne kunne afvikle parameteriserede tests mod de funktioner, hvor afviklingen er uændret, men input er variabelt. Det har primært været et ønske ifm. introduktionen af nye OCES3 certifikater, hvor snitfladerne har været uændret, men input har været henholdsvis OCES2 og OCES3 certifikater.

Følgende side har været indgangen til brug af parametriserede tests:

https://github.com/junit-team/junit4/wiki/Parameterized-tests

Introduktion

En parametriseret JUnit4 test klasse skal afvikles med org.junit.runners.Parameterized. Derfor angives annotation @RunWith(Parameterized.class) på klassen.

Der skal angives en metode, som annoteres med org.junit.runners.Parameterized.Parameters, som er de parametre der bruges i test metoderne. Metoden returnere en java.lang.Iterable bestående af et Object[], hvor hvert Object[] er det datasæt af parametre, som et test genneløb skal bruge. Testene gennemløbes for hvert entry der er i java.lang.Iterable.

Datasæt til tests angives vha. org.junit.runners.Parameterized.Parameter