import Ġakka . actor . Actor System Ċ import Ġakka . stream . Actor Material izer Ċ import Ġakka . stream . Actor Material izer Settings Ċ import Ġcom . google . inject . Abstract Module Ċ import Ġcom . google . inject . name . Names Ċ import Ġcom . types afe . config . Config Factory Ċ import Ġorg . apache . log 4 j . Logger Ċ import Ġplay . libs . ws . ah c . A hc WS ClientConfig Factory Ċ import Ġplay . libs . ws . ah c . Standalone A hc WS Client Ċ import Ġkotlin . system . measure Time Millis ĊĊ Ċ class ĠW s Client Module Ġ: ĠAbstract Module () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLogger . getLogger ( Ws Client Module :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun Ġconfigure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart = System . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġimage Timeout Ġ= Ġ( System . getenv ( image Timeout Label ) Ġ?: Ġdefault Image Timeout ). to Long () ĊĠĠĠĠĠĠĠ Ġbind Constant (). annotated With ( Names . named ( image Timeout Label )). to ( image Timeout ) ĊĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" w sc lient " ĊĠĠĠĠĠĠĠ Ġval Ġsystem Ġ= ĠActor System . create ( name ) ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Time Ġto Ġstart Ġactor Ġsystem Ġduration =${ System . currentTimeMillis ()- start }") ĊĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= ĠActor Material izer Settings . create ( system ) ĊĠĠĠĠĠĠĠ Ġval Ġmaterial izer Ġ= ĠActor Material izer . create ( settings , Ġsystem , Ġname ) ĊĊĊĠĠĠĠĠĠĠ Ġlogger . debug (" time Ġto Ġcreate Ġand Ġbind ĠW s Ġclient Ġduration ="+ Ġmeasure Time Millis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġthe ĠWS Ġclient Ġfrom Ġthe Ġ` application . conf ` Ġfile , Ġthe Ġcurrent Ġclass loader Ġand Ġmaterial izer . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠStand alone A hc WS Client . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA hc WS ClientConfig Factory . for Config ( Config Factory . load (), Ġsystem . java Class . class Loader ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaterial izer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( Actor System :: class . java ). to Instance ( system ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( Standalone A hc WS Client :: class . java ). to Instance ( client ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġimage Timeout Label Ġ= Ġ" image _ timeout " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġdefault Complete Timeout Label Ġ=" complete _ timeout " ĊĠĠĠĠĠĠĠ Ġ// default Ġto Ġ 1 0 Ġseconds ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġdefault Image Timeout Ġ= Ġ" 1 0 " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġdefault Complete Timeout Ġ= Ġ" 3 0 " ĊĠĠĠ Ġ} Ċ Ċ } Ċ