Indledning

Nærværende dokument udgør udviklervejledningen for CRK (Central Rutekonfiguration). Denne udviklervejledning er gældende for BIVWSP version 1.0.X.

Afhængigheder

CRK benytter sig af en række open source projekter. Til at styre afhængighederne og bygge projektet benyttes maven3

Projektstruktur

CRK projektet ligger i NSP subversion repository og kan nås på følgende adresse:

https://svn.nspop.dk/svn/components/crk/trunk


Projektet er struktureret som et standard docker-container-projekt.

Byggevejledning

Komponenten  bygges fra trunk med maven på sædvanlig vis:

mvn clean install

Herefter kan en lokal udgave kan startes med docker

cd compose
cd development
docker-compose up --build


Snapshot-releases kan lægges i NSP registry med Jenkins: https://jenkins.nspop.dk/job/CRK_push_snapshot/

Tests

Unit test er placeret under src/test og anvender samme pakkestruktur som de klasser de tester. Testene er udformet som Junit 4 annoterede test-cases.


Grundet komponentens opbygning i scheduled tasks er der for øjeblikket ikke udarbejdet integrationstests.


Manuel test

Det er muligt at tjekke om CRK kan indlæse DKS konfigurationen fra en HTTP på følgende måde.

crk-jobs.xml:

   <bean id="exampleReloadJobFromFile" class="dk.nsi.nsp.crk.EndpointDefinitionJob">
        <property name="configId" value="job1" />
        <property name="resource" value="${jboss.home.dir}/modules/nsi/crk/configuration/main/jobs/dks-example-http.xml" />
        <property name="enabled" value="false" />
        <property name="timeoutMillis" value="10000" /> <!-- optional, default=10000 millis -->
    </bean>


    <bean id="exampleReloadJobFromHttp" class="dk.nsi.nsp.crk.EndpointDefinitionJob">
        <property name="configId" value="job2" />
        <property name="resource" value="http://test1.fmk.netic.dk/fmk12/services/dksconfig?Version=FMK_1_4_4" />
        <property name="enabled" value="true" />
        <property name="timeoutMillis" value="10000" /> <!-- optional, default=10000 millis -->
    </bean>


    <task:scheduled-tasks scheduler="myScheduler">
        <!-- every hour -->
        <task:scheduled ref="exampleReloadJobFromFile" method="run" cron="0 1 * * * *"/>
        <!-- every minute -->
        <task:scheduled ref="exampleReloadJobFromHttp" method="run" cron="0 * * * * *"/>
    </task:scheduled-tasks>

Indlæsning fra en fil skal sættes til 'false' og indlæsning fra HTTP skal sættes til 'true'. Den nederste task sørger for at den indlæses fra HTTP hvert minut.

Når CRK bliver startet op i docker compose, så vil DKS konfigurationen blive indlæst hvert minut og man kan se status på indlæsningen i compose/development/log/server.log.

Kendte fejl

Der pt. ingen kendte fejl.