package Ġcom . sk sam uel . hop lite . watcher . consul Ċ Ċ import Ġcom . orbit z . consul . Cons ul Ċ import Ġcom . psz ym c zy k . consul . Cons ul Process Ċ import Ġcom . psz ym c zy k . consul . Cons ul Starter Builder Ċ import Ġcom . sk sam uel . hop lite . Config Loader Builder Ċ import Ġcom . sk sam uel . hop lite . Property Source Ċ import Ġcom . sk sam uel . hop lite . consul . Cons ul Config Pre processor Ċ import Ġcom . sk sam uel . hop lite . watch . Reload able Config Ċ import Ġio . kot est . common . Experimental K ot est Ċ import Ġio . kot est . core . spec . style . Fun Spec Ċ import Ġio . kot est . framework . concurrency . event ually Ċ import Ġio . kot est . matchers . shouldBe Ċ Ċ data Ġclass ĠTest Config ( val Ġfoo : ĠString ) Ċ Ċ @ Experimental K ot est Ċ class ĠCons ul Watcher Test : ĠFun Spec ({ ĊĠ Ġlateinit Ġvar Ġcons ul Ġ: ĠCons ul Process ĊĊĠ Ġbefore Spec Ġ{ ĊĠĠĠ Ġcons ul Ġ= ĠCons ul Starter Builder . consul Starter (). build And Start () ĊĠ Ġ} ĊĊĠ Ġafter Spec Ġ{ ĊĠĠĠ Ġcons ul . close () ĊĠ Ġ} ĊĊĠ Ġtest (" Can Ġreload Ġvalues Ġfrom Ġa Ġcons ul Ġcache ") Ġ{ ĊĠĠĠ Ġval Ġembedded Cons ul URL Ġ= Ġ" http :// localhost :${ consul . http Port }" ĊĠĠĠ Ġval Ġkv Client Ġ= ĠCons ul . builder () ĊĠĠĠĠĠ Ġ. with Url ( embedded Cons ul URL ) ĊĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠ Ġ. key Value Client () ĊĠĠĠ Ġkv Client . put Value (" foo ", Ġ" bar ") ĊĊĠĠĠ Ġval Ġconfig Loader Ġ= ĠConfig Loader Builder . default () ĊĠĠĠĠĠ Ġ. add Source ( Property Source . resource ("/ consul Config . yml ")) ĊĠĠĠĠĠ Ġ. add Pre processor ( Cons ul Config Pre processor ( embedded Cons ul URL )) ĊĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġval Ġreload able Config Ġ= ĠRe load able Config ( config Loader , ĠTest Config :: class ) ĊĠĠĠĠĠ Ġ. add Watcher ( Cons ul Watcher ( kv Client , ĠlistOf (" foo "))) ĊĊĠĠĠ Ġconfig Loader . load Config OrThrow < Test Config >() ĊĠĠĠ Ġvar Ġlatest Ġ= Ġreload able Config . get Latest () ĊĠĠĠ Ġlatest . foo ĠshouldBe Ġ" bar " ĊĊĠĠĠ Ġkv Client . put Value (" foo ", Ġ" baz ") ĊĊĠĠĠ Ġeventually ( 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠ Ġlatest Ġ= Ġreload able Config . get Latest () ĊĠĠĠĠĠ Ġlatest . foo ĠshouldBe Ġ" baz " ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }) ĊĊ