package Ġcom . ase ems av io . plugins Ċ Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . http . content .* Ċ import Ġio . ktor . server . routing .* Ċ import Ġio . ktor . server . application .* Ċ import Ġio . ktor . server . request .* Ċ import Ġio . ktor . server . response .* Ċ import Ġkotlinx . coroutines . delay Ċ import Ġjava . io . File Ċ Ċ fun ĠApplication . configure Routing ( config Map : ĠConfig Map ) Ġ{ ĊĊĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠ Ġget ("/") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġhave Ġreached Ġgn ib Ġ- ĠGra al ĠVM ĠNative ĠImage ĠBuilder . Ġnative ĠImage ĠBuilding Ġhas Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" never Ġbeen Ġthis Ġfun Ġbefore !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpost ("/ native - image / arguments ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Map [ Arguments Key ] Ġ= Ġarguments ( call . receive Text ()). to Arguments () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Arguments Ġchanged : Ġ${ config Map [ Arguments Key ]} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( message Ġ= Ġ" Accepted ", Ġstatus Ġ= ĠHttpStatusCode . Accepted ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( message Ġ= Ġe . message !! , Ġstatus Ġ= ĠHttpStatusCode . BadRequest ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpost ("/ jar ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġcall . receive Multipart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . forEach Part Ġ{ Ġpart Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( part Ġis ĠPart Data . File Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġpart . original FileName !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Map [ Jar Name Key ] Ġ= ĠJar Name ( fileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ("$ fileName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpart . stream Provider (). use Ġ{ Ġits Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . output Stream (). buffered (). use Ġ{ Ġits . copy To ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" JAR Ġuploaded : Ġ${ file . absolute Path }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( message Ġ= Ġ" Uploaded ĠJ AR ", Ġstatus Ġ= ĠHttpStatusCode . Created ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpart . dispose () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( message Ġ= Ġe . message !! , Ġstatus Ġ= ĠHttpStatusCode . BadRequest ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpost ("/ build / native - image ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( message Ġ= Ġ" Build ĠSuccessful !", Ġstatus Ġ= ĠHttpStatusCode . Created ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget ("/ native - image ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġconfig Map [ Jar Name Key ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Name Ġ= Ġif Ġ( image Ġis ĠJar Name ) Ġimage . value Ġelse Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ("/ images /$ image Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond File ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġcall . respond ( message Ġ= Ġ" File ĠNot Ġavailable ", Ġstatus Ġ= ĠHttpStatusCode . NotFound ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget ("/ logs ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( message Ġ= Ġ" Logs Ġwill Ġbe Ġsent .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ