/* Ċ Ġ* ĠCopyright Ġ( C ) 2 0 1 8 Ġ- ĠDen y ĠPr ase ty o Ġ< jas o et 8 7 @ gmail . com > Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġid . y of rame work . web . vert icle Ċ Ċ import Ġarrow . core . Try Ċ import Ġarrow . core . getOrElse Ċ import Ġid . y of rame work . core . extension . logger . logger Ċ import Ġid . y of rame work . web . controller . Controller Ċ import Ġid . y of rame work . web . extension . start HttpServer Ċ import Ġio . vertx . kotlin . core . http . http Server Options Of Ċ import Ġio . vertx . kotlin . coroutines . Coroutine Vert icle Ċ Ċ open Ġclass ĠWeb Vert icle ( ĊĠĠĠ Ġprivate Ġval Ġcontroller : ĠController , ĊĠĠĠ Ġprivate Ġval Ġserver Name : ĠString Ġ= Ġ" HttpServer ", ĊĠĠĠ Ġprivate Ġval Ġport Config Name : ĠString Ġ= Ġ" HTTP _ PORT ", ĊĠĠĠ Ġprivate Ġval Ġcompression Support Config : ĠString Ġ= Ġ" HTTP _ COMPRESS ION _ SUPPORTED ", ĊĠĠĠ Ġprivate Ġval Ġcompression Level Config : ĠString Ġ= Ġ" HTTP _ COMPRESS ION _ LEVEL ", Ċ ) Ġ: ĠCor outine Vert icle () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlog Ġ= Ġlogger ( Web Vert icle :: class ) ĊĊĠĠĠ Ġopen Ġfun Ġresolve Port (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconfig . getInteger ( port Config Name ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġopen Ġfun Ġresolve Compression Support (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconfig . getBoolean ( compression Support Config ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġopen Ġfun Ġresolve Compression Level (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconfig . getInteger ( compression Level Config ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrouter Ġ= Ġcontroller . create () ĊĠĠĠĠĠĠĠ ĠTry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġport Ġ= Ġresolve Port () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" Starting Ġ$ server Name Ġon Ġport Ġ$ port ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompression Supported Ġ= Ġresolve Compression Support () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" HTTP ĠCompression ĠSupported Ġset Ġto Ġ$ compression Supported ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompression Level Ġ= Ġresolve Compression Level () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" HTTP ĠCompression ĠLevel Ġset Ġto Ġ$ compression Level ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver Options Ġ= Ġhttp Server Options Of (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Compression Supported Ġ= Ġcompression Supported ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Compression Level ( compression Level ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhttp Server Ġ= Ġvert x . start HttpServer ( router , Ġport , Ġserver Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info ("$ server Name Ġstarted Ġin Ġport Ġ${ http Server . actual Port () }") ĊĠĠĠĠĠĠĠ Ġ}. getOrElse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Failed Ġto Ġstart Ġ$ server Name . Ġ[ ${ it . message } ]", Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ