package Ġio . github . ch h ch . components . hello Log Ċ Ċ import Ġio . github . ch h ch . commons . Inject Ċ import Ġio . github . ch h ch . commons . Logger Ċ import Ġio . github . ch h ch . commons . Start Ċ import Ġio . github . ch h ch . commons . Stop Ċ import Ġio . github . ch h ch . components . Logger Dummy Ċ import Ġio . github . ch h ch . components . hello Log . util . G reet er Ċ import Ġio . github . ch h ch . components . print Class Lo aders Ċ Ċ class ĠHello Component Ġ@ Inject Ġconstructor ( private Ġval Ġlogger : ĠLogger ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHello Component ( Logger Dummy ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġprint Class Lo aders ( logger , Ġthis , Ġlogger ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Start ĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . send Log (" Print s Ġ 1 0 Ġtimes Ġ' Hello ĠWorld '") ĊĠĠĠĠĠĠĠ Ġval Ġg reet er Ġ= ĠG reet er ( logger ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg reet er . gre et ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 1 _ 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . send Log (" Finished !") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Stop ĊĠĠĠ Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . send Log (" Shut ting Ġdown ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 3 Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . send Log ("$ i ... Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 1 _ 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . send Log (" By e .") ĊĠĠĠ Ġ} Ċ Ċ }