val Ġk tor Version : ĠString Ġby Ġproject Ċ val Ġkotlin Version : ĠString Ġby Ġproject Ċ val Ġlog back Version : ĠString Ġby Ġproject Ċ Ċ fun Ġk tor ( module : ĠString , Ġversion : ĠString ? Ġ= Ġthis @ Build _ gradle . ktor Version ): ĠAny Ġ= ĊĠĠĠ Ġ" io . ktor : ktor -$ module :$ version " Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġapplication ĊĠĠĠ Ġkotlin (" jvm ") ĊĠĠĠ Ġid (" com . bm us ch ko . docker - java - application ") ĊĊĠĠĠ Ġ/** ĠRequired Ġto Ġbuild Ġfat Ġjar . Ġ*/ ĊĠĠĠ Ġid (" com . github . john ren gel man . shadow ") Ġversion Ġ" 7 . 0 . 0 " ĊĊĠĠĠ Ġ// Ġadd Ġif Ġuse ĠKotlin Ġserialization ĊĠĠĠ Ġ// Ġid (" org . jetbrains . kotlin . plugin . serialization ") Ċ } Ċ Ċ application Ġ{ ĊĠĠĠ Ġmain Class . set (" io . ktor . server . netty . Engine Main ") Ċ } Ċ Ċ docker Ġ{ ĊĠĠĠ Ġjava Application Ġ{ ĊĠĠĠĠĠĠĠ Ġmain ClassName . set ( application . main Class . get ()) ĊĠĠĠĠĠĠĠ Ġbase Image . set (" ad opt openjdk / openjdk 1 1 : alpine - jre ") ĊĠĠĠĠĠĠĠ Ġports . set ( listOf ( 8 0 8 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġimage Name Ġ= Ġproject . name ĊĠĠĠĠĠĠĠ Ġimages . set ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ image Name :${ project . version }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ image Name : latest " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġj vm Args . set ( listOf ("- X ms 2 5 6 m ", Ġ"- X mx 5 1 2 m ")) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠBuild Ġfat Ġjar , Ġand Ġput Ġit Ġin Ġbuild / libs Ġfolder . Ċ Ġ*/ Ċ tasks Ġ{ ĊĠĠĠ Ġshadow Jar Ġ{ ĊĠĠĠĠĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes ( Pair (" Main - Class ", Ġ" com . example . Application Kt ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On (": frontend : build ") ĊĠĠĠĠĠĠĠ Ġdepends On (": frontend : copy Vue To K tor ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĊĠĠĠ Ġ// ĠK tor Ġcore Ġcomponents ĊĠĠĠ Ġimplementation ( ktor (" server - core ")) ĊĊĠĠĠ Ġ// ĠNet ty Ġengine ĊĠĠĠ Ġimplementation ( ktor (" server - netty ")) ĊĊĠĠĠ Ġ// Ġsupport Ġsessions ĊĠĠĠ Ġimplementation ( ktor (" server - sessions ")) ĊĊĠĠĠ Ġimplementation ( ktor (" client - jackson ")) ĊĠĠĠ Ġimplementation ( ktor (" jackson ")) ĊĠĠĠ Ġ// ĠK tor Ġown Ġserialization ĊĠĠĠ Ġ// implementation ( ktor (" serialization ")) ĊĊĠĠĠ Ġimplementation ( ktor (" fre emark er ")) ĊĊĠĠĠ Ġ// Ġmain ĠHTTP Ġclient Ġfunctionality ĊĠĠĠ Ġimplementation ( ktor (" client - core ")) ĊĠĠĠ Ġ// Ġdependency Ġfor Ġthe ĠC IO Ġnetwork Ġengine ĊĠĠĠ Ġimplementation ( ktor (" client - c io ")) ĊĊĠĠĠ Ġimplementation ( ktor (" auth ")) ĊĠĠĠ Ġimplementation ( ktor (" auth - jwt ")) ĊĊĠĠĠ Ġ// ĠAn Ġs lf 4 j Ġimplementation , Ġwe Ġwill Ġuse Ġour Ġown Ġlog back Ġwrapper Ġfrom Ġthe Ġ: backend : logging Ġmodule ĊĠĠĠ Ġ// implementation (" ch . qos . log back : log back - classic :$ log back Version ") ĊĊĠĠĠ Ġimplementation ( project (": backend : models ")) ĊĠĠĠ Ġimplementation ( project (": backend : services ")) ĊĠĠĠ Ġimplementation ( project (": backend : transport : openapi ")) ĊĠĠĠ Ġimplementation ( project (": backend : transport : mapping ")) ĊĠĠĠ Ġimplementation ( project (": backend : transport : log ")) ĊĠĠĠ Ġimplementation ( project (": backend : logging ")) ĊĊĠĠĠ Ġ// ĠAllows Ġto Ġtest Ġparts Ġof ĠK tor Ġapplication Ġwithout Ġhaving Ġto Ġuse Ġthe Ġwhole ĠHTTP Ġstack Ġin Ġthe Ġprocess ĊĠĠĠ Ġtest Implementation ( ktor (" server - test - host ")) ĊĊĠĠĠ Ġtest Implementation ( kotlin (" test - junit ")) Ċ // ĠĠĠ Ġtest Implementation (" org . jetbrains . kotlin : kotlin - test :$ kotlin Version ") Ċ }