package Ġcom . od ote am . odo . controllers Ċ Ċ import Ġcom . group on . odo . proxy lib . Constants Ċ import Ġcom . group on . odo . proxy lib . History Service Ċ import Ġcom . group on . odo . proxy lib . SQL Service Ċ import Ġcom . group on . odo . proxy lib . Utils Ċ import Ġcom . od ote am . odo . containers . Http Proxy Container Ċ import Ġorg . apache . catalina . connector . Connector Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . boot . Spring Application Ċ import Ġorg . springframework . boot . autoconfigure . Enable Auto Configuration Ċ import Ġorg . springframework . boot . autoconfigure . web . servlet . Servlet WebServer Factory Auto Configuration Ċ import Ġorg . springframework . boot . web . embedded . tomcat . Tom cat Connector Customizer Ċ import Ġorg . springframework . boot . web . embedded . tomcat . Tom cat Servlet WebServer Factory Ċ import Ġorg . springframework . boot . web . servlet . server . Servlet WebServer Factory Ċ import Ġorg . springframework . context . annotation .* Ċ import Ġorg . springframework . stereotype . Controller Ċ import Ġorg . springframework . web . bind . annotation . GetMapping Ċ import Ġorg . springframework . web . filter . Hidden HttpMethod Filter Ċ import Ġjava . io . File Ċ import Ġjava . time . Duration Ċ import Ġjavax . annotation . Post Construct Ċ import Ġjavax . annotation . Pre Destroy Ċ import Ġjavax . servlet . Filter Ċ Ċ @ Controller Ċ @ Component Scan ( ĊĠĠĠĠĠĠĠ Ġbase Packages Ġ= Ġ[" com . od ote am . odo . controllers "], ĊĠĠĠĠĠĠĠ Ġexclude Filters Ġ= Ġ[ Component Scan . Filter ( type Ġ= ĠFilter Type . ASSIGN ABLE _ TYPE , Ġvalue Ġ= Ġ[ Http Proxy Container :: class ])] Ċ ) Ċ @ Enable Auto Configuration ( exclude Ġ= Ġ[ Servlet WebServer Factory Auto Configuration :: class ]) Ċ @ Property Sources ( value Ġ= Ġ[ Property Source (" classpath : application . properties ") ]) Ċ class ĠHome Controller Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( HomeController :: class . java ) ĊĊĠĠĠ Ġ@ Post Construct ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSQL Service . getInstance (). update Schema ("/ migrations ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Pre Destroy ĊĠĠĠ Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" Running Ġdestroy ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSQL Service . getInstance (). stop Server () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ[" /" ]) ĊĠĠĠ Ġfun Ġhome (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" redirect : profiles " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġservlet Container (): ĠServlet WebServer Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠTom cat Servlet WebServer Factory () ĊĠĠĠĠĠĠĠ Ġval Ġapi Port Ġ= ĠUtils . getSystem Port ( Constants . SYS _ API _ PORT ) ĊĠĠĠĠĠĠĠ Ġfactory . port Ġ= Ġapi Port ĊĠĠĠĠĠĠĠ Ġfactory . session . timeout Ġ= ĠDuration . of Minutes ( 1 0 ) ĊĠĠĠĠĠĠĠ Ġfactory . context Path Ġ= Ġ"/ odo " ĊĠĠĠĠĠĠĠ Ġfactory . set Base Directory ( File ("./ tmp ")) ĊĠĠĠĠĠĠĠ Ġval Ġcs Ġ= Ġmutable ListOf < Tom cat Connector Customizer ?> () ĊĠĠĠĠĠĠĠ Ġcs . add ( tomcat Connector Custom izers ()) ĊĠĠĠĠĠĠĠ Ġfactory . tomcat Connector Custom izers Ġ= Ġcs ĊĠĠĠĠĠĠĠ Ġif Ġ( Utils . get Environment Option Value ( Constants . SYS _ LOG GING _ DISABLED ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHistory Service . getInstance (). disable History () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfactory ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġtom cat Connector Custom izers (): ĠTom cat Connector Customizer Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTom cat Connector Customizer Ġ{ Ġconnector : ĠConnector Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnector . max Post Size Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnector . setProperty (" relax ed Query Chars ", Ġ"< >[ \\ ]^ ` {| }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnector . setProperty (" relax ed Path Chars ", Ġ"< >[ \\ ]^ ` {| }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO Ġcheck Ġif Ġused ĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġhidden HttpMethod Filter (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠHidden HttpMethod Filter () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ ĠSpring Application . run ( HomeController :: class . java , Ġ* args ) ĊĠĠĠ ĠSpring Application . run ( Http Proxy Container :: class . java , Ġ* args ) Ċ }