package Ġno . nav . hel se . testdata Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . databind . Serialization Feature Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson ObjectMapper Ċ import Ġio . ktor . application .* Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . engine . c io .* Ċ import Ġio . ktor . client . features . json .* Ċ import Ġio . ktor . features .* Ċ import Ġio . ktor . http . content .* Ċ import Ġio . ktor . jackson .* Ċ import Ġio . ktor . routing .* Ċ import Ġio . ktor . websocket .* Ċ import Ġno . nav . hel se . rap ids _ river s . R apid Application Ċ import Ġno . nav . hel se . rap ids _ river s . R ap ids Connection Ċ import Ġno . nav . hel se . testdata . api .* Ċ import Ġno . nav . hel se . testdata . river s . V ed tak sp eri ode End ret R iver Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . File Ċ Ċ val Ġlog : ĠLogger Ġ= ĠLoggerFactory . getLogger (" sp le is - testdata ") Ċ val ĠobjectMapper : ĠObjectMapper Ġ= Ġj ack son ObjectMapper () ĊĠĠĠ Ġ. disable ( Serialization Feature . WRITE _ DAT ES _ AS _ TIMESTAMP S ) ĊĠĠĠ Ġ. register Module ( Java Time Module ()) Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġenv Ġ= ĠsetUp Environment () ĊĊĠĠĠ Ġval Ġsp le is DataSource Ġ= ĠDataSource Builder ( env , Ġenv . database Configs . sp le is Config ). getDataSource () ĊĠĠĠ Ġval Ġs pes ial ist DataSource Ġ= ĠDataSource Builder ( env , Ġenv . database Configs . sp es ial ist Config ). getDataSource () ĊĠĠĠ Ġval Ġs pen n DataSource Ġ= ĠDataSource Builder ( env , Ġenv . database Configs . sp enn Config ). getDataSource () ĊĊĠĠĠ Ġval ĠhttpClient Ġ= ĠHttpClient ( C IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexpect Success Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġinstall ( Json Feature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer Ġ= ĠJack son Serializer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisable ( Serialization Feature . WRITE _ DAT ES _ AS _ TIMESTAMP S ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġst s RestClient Ġ= ĠSt s RestClient (" http :// security - token - service . default . svc . na is . local ", Ġenv . service User ) ĊĠĠĠ Ġval Ġinn te kt RestClient Ġ= ĠIn n te kt RestClient ( env . inn te kt Rest Url , ĠhttpClient , Ġst s RestClient ) ĊĠĠĠ Ġval Ġakt Ã¸ r RestClient Ġ= ĠA kt Ã¸ r RestClient ( env . akt Ã¸ r Rest Url , ĠhttpClient , Ġst s RestClient ) ĊĊĠĠĠ Ġval Ġperson Service Ġ= ĠPerson Service ( ĊĠĠĠĠĠĠĠ Ġsp le is DataSource Ġ= Ġsp le is DataSource , ĊĠĠĠĠĠĠĠ Ġs pes ial ist DataSource Ġ= Ġs pes ial ist DataSource , ĊĠĠĠĠĠĠĠ Ġs pen n DataSource Ġ= Ġs pen n DataSource ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠApplication Builder ( ĊĠĠĠĠĠĠĠ Ġrap ids Config Ġ= ĠR apid Application . R apid Application Config . from Env ( System . getenv ()), ĊĠĠĠĠĠĠĠ Ġperson Service Ġ= Ġperson Service , ĊĠĠĠĠĠĠĠ Ġsubscription Service Ġ= ĠConcrete Subscription Service , ĊĠĠĠĠĠĠĠ Ġakt Ã¸ r RestClient Ġ= Ġakt Ã¸ r RestClient , ĊĠĠĠĠĠĠĠ Ġinn te kt RestClient Ġ= Ġinn te kt RestClient ĊĠĠĠ Ġ). start () Ċ } Ċ Ċ internal Ġdata Ġclass ĠR ap ids Mediator ( internal Ġval Ġconnection : ĠR ap ids Connection ) Ċ Ċ internal Ġclass ĠApplication Builder ( ĊĠĠĠ Ġrap ids Config : ĠR apid Application . R apid Application Config , ĊĠĠĠ Ġprivate Ġval Ġperson Service : ĠPerson Service , ĊĠĠĠ Ġprivate Ġval Ġsubscription Service : ĠSubscription Service , ĊĠĠĠ Ġprivate Ġval Ġakt Ã¸ r RestClient : ĠA kt Ã¸ r RestClient , ĊĠĠĠ Ġprivate Ġval Ġinn te kt RestClient : ĠIn n te kt RestClient , Ċ ) Ġ: ĠR ap ids Connection . Status Listener Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrap ids Mediator : ĠR ap ids Mediator ĊĊĠĠĠ Ġprivate Ġval Ġrap ids Connection Ġ= ĊĠĠĠĠĠĠĠ ĠR apid Application . Builder ( rap ids Config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with K tor Module Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstall K tor Module ( person Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscription Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġakt Ã¸ r RestClient , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinn te kt RestClient , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrap ids Mediator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrap ids Mediator Ġ= ĠR ap ids Mediator ( rap ids Connection ) ĊĠĠĠĠĠĠĠ Ġrap ids Connection . register ( this ) ĊĠĠĠĠĠĠĠ ĠV ed tak sp eri ode End ret R iver ( rap ids Connection , Ġsubscription Service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart () Ġ= Ġrap ids Connection . start () Ċ } Ċ Ċ internal Ġfun ĠApplication . install K tor Module ( ĊĠĠĠ Ġperson Service : ĠPerson Service , ĊĠĠĠ Ġsubscription Service : ĠSubscription Service , ĊĠĠĠ Ġakt Ã¸ r RestClient : ĠA kt Ã¸ r RestClient , ĊĠĠĠ Ġinn te kt RestClient : ĠIn n te kt RestClient , ĊĠĠĠ Ġrap ids Mediator : ĠR ap ids Mediator , Ċ ) Ġ{ ĊĠĠĠ Ġinstall Jack son Feature () ĊĠĠĠ Ġinstall ( WebSocket s ) ĊĊĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠ Ġregister Person Api ( person Service , Ġakt Ã¸ r RestClient ) ĊĠĠĠĠĠĠĠ Ġregister V ed tak sp eri ode Api ( rap ids Mediator , Ġakt Ã¸ r RestClient ) ĊĠĠĠĠĠĠĠ Ġregister In n te kt Api ( inn te kt RestClient ) ĊĠĠĠĠĠĠĠ Ġregister Be h ov Api ( rap ids Mediator ) ĊĠĠĠĠĠĠĠ Ġregister Subscription Api ( subscription Service ) ĊĊĠĠĠĠĠĠĠ Ġstatic ("/") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Root Folder Ġ= ĠFile (" public ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfiles ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault (" index . html ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun ĠApplication . install Jack son Feature () Ġ{ ĊĠĠĠ Ġinstall ( Content Neg otiation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġj ack son Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable ( Serialization Feature . WRITE _ DAT ES _ AS _ TIMESTAMP S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ