package Ġcover os R 3 z . server . utility Ċ Ċ import Ġcover os R 3 z . system . config . STATIC _ FILES _ DIRECTORY Ċ import Ġcover os R 3 z . system . logging . I Logger . Companion . log Imp er ative Ċ import Ġcover os R 3 z . system . misc . utility . FileReader Ċ import Ġcover os R 3 z . server . api . handle NotFound Ċ import Ġcover os R 3 z . server . types . Prepared ResponseData Ċ import Ġjava . nio . file .* Ċ Ċ class ĠStatic Files Utilities Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġis Ġused Ġat Ġserver Ġstartup Ġto Ġload Ġthe Ġcache Ġwith Ġall ĊĠĠĠĠĠĠĠĠ Ġ* Ġour Ġstatic Ġfiles . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġcode Ġfor Ġlooping Ġthrough Ġthe Ġfiles Ġin Ġthe Ġjar Ġwas ĊĠĠĠĠĠĠĠĠ Ġ* Ġharder Ġthan ĠI Ġthought , Ġsince Ġwe 're Ġasking Ġto Ġloop Ġthrough ĊĠĠĠĠĠĠĠĠ Ġ* Ġa Ġzip Ġfile , Ġnot Ġan Ġordinary Ġfile Ġsystem . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠMaybe Ġsome Ġopportunity Ġfor Ġrefactoring Ġhere . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġload Static Files To Cache ( cache : ĠMutable Map < String , ĠPrepared ResponseData >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Imp er ative (" Loading Ġall Ġstatic Ġfiles Ġinto Ġcache ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurls Ġ= ĠcheckNotNull ( FileReader . getResources ( STATIC _ FILES _ DIRECTORY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( url Ġin Ġurls ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġurl . to URI () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Path Ġ= Ġif Ġ( uri . scheme Ġ== Ġ" jar ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile System : ĠFileSystem Ġ= ĠFileSystem s . new FileSystem ( uri , Ġempty Map < String , ĠAny >()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile System . getPath ( STATIC _ FILES _ DIRECTORY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPaths . get ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( path : ĠPath Ġin ĠFiles . walk ( my Path , Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Contents Ġ= ĠFileReader . read ( STATIC _ FILES _ DIRECTORY Ġ+ Ġpath . fileName . toString ()) Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġpath . fileName . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilename . take Last ( 4 ) Ġ== Ġ". css " Ġ-> ĠServer Utilities . ok CSS ( file Contents ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilename . take Last ( 3 ) Ġ== Ġ". js " Ġ-> ĠServer Utilities . ok JS ( file Contents ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilename . take Last ( 5 ) Ġ== Ġ". webp " Ġ-> ĠServer Utilities . ok WE BP ( file Contents ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilename . take Last ( 5 ) Ġ== Ġ". html " Ġ|| Ġfilename . take Last ( 4 ) Ġ== Ġ". htm " Ġ-> ĠServer Utilities . ok HTML ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Contents ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġhandle NotFound () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcache [ filename ] Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }