package Ġcom . oct opus . cal am ari . tomcat Ċ Ċ import Ġcom . oct opus . cal am ari . utils . Constants Ċ import Ġorg . apache . commons . io . Filename Utils Ċ import Ġorg . apache . commons . lang 3 . StringUtils Ċ import Ġorg . f unktion ale . option . Option Ċ import Ġjava . lang . IllegalArgumentException Ċ import Ġjava . net . URL Ċ import Ġjava . net . URL Encoder Ċ import Ġjava . util . logging . Logger Ċ Ċ /** Ċ Ġ* ĠOptions Ġthat Ġre late Ġto ĠTom cat Ġdeployments Ċ Ġ*/ Ċ data Ġclass ĠTom cat Options ( val Ġcontroller : String , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser : String Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword : String Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeploy : Boolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplication : String Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : String Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag : String Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion : String Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate : Boolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġalready Dump ed : Boolean Ġ= Ġfalse ) Ġ{ ĊĊĠĠĠ Ġval Ġlogger : ĠLogger Ġ= ĠLogger . getLogger ("") ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! this . already Dump ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ( this . to S antis ised String ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġurl Path : Option < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ(" /" Ġ== Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . Some ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( StringUtils . isNotBlank ( name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRemove Ġthe Ġleading Ġsl ashed Ġwith ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . Some ( name . replace ( Regex ("^ /+ "), Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( StringUtils . isNotBlank ( application )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . Some ( Filename Utils . getBase Name ( application ). split (" ## "). get ( 0 ). replace ("# ", Ġ"/ ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . None ĊĊĠĠĠ Ġprivate Ġval Ġurl Version : Option < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( StringUtils . isNotBlank ( version )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . Some ( version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( StringUtils . contains ( application , Ġ" ## ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . Some ( Filename Utils . getBase Name ( application ). split (" ## "). get ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . None ĊĊĠĠĠ Ġval Ġdeploy Url : URL ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠURL ("$ controller / text /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" deploy ? update = true & " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( url Version . isDefined ()) Ġ" version =${ URL Encoder . encode ( url Version . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( urlPath . isDefined ()) Ġ" path = /${ URL Encoder . encode ( urlPath . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( StringUtils . isNotBlank ( tag )) Ġ" tag =${ URL Encoder . encode ( tag , Ġ" UTF - 8 ") }" Ġelse Ġ"")) ĊĊĠĠĠ Ġval Ġre deploy Url : URL ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠURL ("$ controller / text /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" deploy ?" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( url Version . isDefined ()) Ġ" version =${ URL Encoder . encode ( url Version . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( urlPath . isDefined ()) Ġ" path = /${ URL Encoder . encode ( urlPath . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( StringUtils . isNotBlank ( tag )) Ġ" tag =${ URL Encoder . encode ( tag , Ġ" UTF - 8 ") }" Ġelse Ġ"")) ĊĊĠĠĠ Ġval Ġun deploy Url : URL ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠURL ("$ controller / text /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" un deploy ?" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( url Version . isDefined ()) Ġ" version =${ URL Encoder . encode ( url Version . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( urlPath . isDefined ()) Ġ" path = /${ URL Encoder . encode ( urlPath . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"")) ĊĊĠĠĠ Ġval Ġstop Url : URL ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠURL ("$ controller / text /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" stop ?" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( url Version . isDefined ()) Ġ" version =${ URL Encoder . encode ( url Version . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( urlPath . isDefined ()) Ġ" path = /${ URL Encoder . encode ( urlPath . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"")) ĊĊĠĠĠ Ġval Ġstart Url : URL ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠURL ("$ controller / text /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" start ?" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( url Version . isDefined ()) Ġ" version =${ URL Encoder . encode ( url Version . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( urlPath . isDefined ()) Ġ" path = /${ URL Encoder . encode ( urlPath . get (), Ġ" UTF - 8 ") }& " Ġelse Ġ"")) ĊĊĠĠĠ Ġval Ġlist Url : URL ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠURL ("$ controller / text / list ") ĊĊĠĠĠ Ġcompanion Ġobject ĠFactory Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa Ġnew ĠOptions Ġinstance Ġpopulated Ġfrom Ġthe Ġvalues Ġin Ġthe Ġenvironment Ġvariables ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Environment Vars (): ĠTom cat Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenv Vars Ġ= ĠSystem . getenv () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplication Ġ= Ġenv Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Oct opus _ T ent acle _ Current Deployment _ Package FilePath "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġenv Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ Name "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġenv Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ Version "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= Ġenv Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ Controller "] Ġ?: Ġ" http :// localhost : 8 0 8 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġenv Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ User "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġenv Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ Password "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeploy Ġ= Ġ( env Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ Deploy "] Ġ?: Ġ" true "). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenabled Ġ= Ġ( env Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ Enabled "] Ġ?: Ġ" true "). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġenv Vars [ Constants . ENV IR ONE MT _ VARS _ PREFIX Ġ+ Ġ" Tom cat _ Deploy _ Tag "] Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isBlank ( user )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" user Ġcan Ġnot Ġbe Ġnull ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isBlank ( password )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" password Ġcan Ġnot Ġbe Ġnull ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTom cat Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeploy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion . trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMask s Ġthe Ġpassword Ġwhen Ġdump ing Ġthe Ġstring Ġversion Ġof Ġthis Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġto S antis ised String (): String Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ" ****** ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalready Dump ed Ġ= Ġtrue ). toString () ĊĠĠĠ Ġ} Ċ }