package Ġorg . wp attern . ktor . config Ċ Ċ import Ġcom . nat pr y ce . kon fig . Configuration Properties Ċ import Ġcom . nat pr y ce . kon fig . Environment Variables Ċ import Ġcom . nat pr y ce . kon fig . over riding Ċ import Ġio . ktor . application . Application Ċ import Ġorg . k oin . dsl . module . module Ċ import Ġorg . k oin . standalone . Stand Al one Context Ċ import Ġorg . wp attern . ktor . product . Product Service Ċ import Ġorg . wp attern . ktor . product . Product ServiceImpl Ċ import Ġorg . wp attern . ktor . commons . accum ulate Ċ import Ġorg . wp attern . ktor . event . Event Repository Ċ import Ġorg . wp attern . ktor . product . Product Event Ċ import Ġorg . wp attern . ktor . product . Product File Event Repository Ċ import Ġjava . io . File Ċ Ċ fun ĠApplication . config K oin () Ġ{ ĊĠĠĠ Ġval Ġmodule Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠProduct File Event Repository ( eventName Ġ= Ġ" product ", Ġfolder Path Ġ= ĠgetProperty (" product . folder ")) Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠProduct ServiceImpl ( get ()) Ġas ĠProduct Service Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġprofile Ġ= Ġenvironment . config . property (" ktor . profile "). getString () ĊĠĠĠ ĠStand Al one Context . start K oin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= ĠlistOf ( module ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse K oin Properties File Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Environment Properties Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Properties Ġ= Ġload Profile ( profile )) Ċ } Ċ Ċ private Ġfun Ġload Profile ( profile : ĠString ): ĠMap < String , ĠString > Ġ{ ĊĠĠĠ Ġval Ġprofile Filename Ġ= Ġ" application -$ profile . properties " ĊĊĠĠĠ Ġval Ġconfiguration Ġ= ĠConfiguration Properties . system Properties () Ġoverriding ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment Variables () Ġoverriding ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration Properties . from File ( File (" src / main / resources /" Ġ+ Ġprofile Filename )) Ġoverriding ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration Properties . from Resource ( profile Filename ) ĊĊĠĠĠ Ġreturn Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. list () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . second Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accum ulate () Ċ } Ċ