package Ġfr . g pr ince . kotlin . sandbox . http . server . application Ċ Ċ import Ġcom . co da h ale . metrics . J mx Reporter Ċ import Ġcom . co da h ale . metrics . Metric Registry Ċ import Ġfr . g pr ince . kotlin . sandbox . http . server . jackson . config . Jack son Config Ċ import Ġfr . g pr ince . kotlin . sandbox . http . server . service . Simple Service Ċ import Ġio . under tow . Under tow Ċ import Ġjava . io . Closeable Ċ Ċ public Ġval Ġmetric Registry Ġ= ĠMetric Registry () Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĊĠĠĠ ĠSystem . setProperty (" org . jboss . rest easy . port ", Ġ 8 0 8 0 . toString ()) ĊĠĠĠ ĠSystem . setProperty (" org . jboss . rest easy . host ", Ġ" localhost ") ĊĊĠĠĠ Ġserver Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġdeployment Ġ= Ġdeployment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources Ġ= Ġarray ListOf < Any >( Simple Service ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovider Factory Ġ= Ġprovider Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Provider ( Jack son Config :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdeployment Info Ġ= Ġunder tow Deployment ( deployment ). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Deployment Name (" "). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Context Path ("/ "). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ClassLoader ( Thread . currentThread (). context ClassLoader ) ĊĊĠĠĠĠĠĠĠ Ġdeploy ( deployment Info ) ĊĊĠĠĠ Ġ}. start ( Under tow . builder (). add Http Listener ( 8 0 8 0 , Ġ" localhost ")) ĊĊĠĠĠ ĠJ mx Reporter . for Registry ( metric Registry ). build (). start () Ċ } ĊĊ Ċ public Ġinline Ġfun Ġ< T Ġ: ĠClose able , ĠR > ĠT . using ( block : Ġ( T ) Ġ-> ĠR ): ĠR Ġ= ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . close () ĊĠĠĠĠĠĠĠ Ġ}